Skip to content
Projects

dromara/carbon has 5,223 GitHub stars and 278 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 12:54 UTC. Last push 2026-10-29.

How these counts are measured

A simple, semantic and developer-friendly time package for golang

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

carbon

Carbon Release Go Test golangci-lint Go Coverage Carbon Doc Awesome HelloGitHub License

English | 简体中文 | 日本語 | 한국어

Introduction

Carbon is a lightweight, semantic, and developer-friendly golang time package that doesn't depend on any third-party package, has 100% unit test coverage, and has been used by docker organization as well as included by awesome-go and hello-github.

docker

Repository

github.com/dromara/carbon

gitee.com/dromara/carbon

gitcode.com/dromara/carbon

Quick Start

Installation

go version >= 1.18

// Via github
go get -u github.com/dromara/carbon/v2
import "github.com/dromara/carbon/v2"

// Via gitee
go get -u gitee.com/dromara/carbon/v2
import "gitee.com/dromara/carbon/v2"

// Via gitcode
go get -u gitcode.com/dromara/carbon/v2
import "gitcode.com/dromara/gitcode/v2"

Carbon was donated to the dromara organization, the repository URL has changed. If the previous repository used was golang-module/carbon, please replace the original repository with the new repository in go.mod, or execute the following command:

go mod edit -replace github.com/golang-module/carbon/v2 = github.com/dromara/carbon/v2

Example Usage

Default timezone is UTC, language locale is English, start day of the week is Monday and weekend days of the week are Saturday and Sunday.

carbon.SetTestNow(carbon.Parse("2020-08-05 13:14:15.999999999"))
carbon.IsTestNow() // true

carbon.Now().ToString() // 2020-08-05 13:14:15.999999999 +0000 UTC
carbon.Yesterday().ToString() // 2020-08-04 13:14:15.999999999 +0000 UTC
carbon.Tomorrow().ToString() // 2020-08-06 13:14:15.999999999 +0000 UTC

carbon.Parse("2020-08-05 13:14:15").ToString() // 2020-08-05 13:14:15 +0000 UTC
carbon.Parse("2022-03-08T03:01:14-07:00").ToString() // 2022-03-08 10:01:14 +0000 UTC

carbon.ParseByLayout("It is 2020-08-05 13:14:15", "It is 2006-01-02 15:04:05").ToString() // 2020-08-05 13:14:15 +0000 UTC
carbon.ParseByFormat("It is 2020-08-05 13:14:15", "\\I\\t \\i\\s Y-m-d H:i:s").ToString() // 2020-08-05 13:14:15 +0000 UTC

carbon.CreateFromDate(2020, 8, 5).ToString() // 2020-08-05 00:00:00 +0000 UTC
carbon.CreateFromTime(13, 14, 15).ToString() // 2020-08-05 13:14:15 +0000 UTC
carbon.CreateFromDateTime(2020, 8, 5, 13, 14, 15).ToString() // 2020-08-05 13:14:15 +0000 UTC
carbon.CreateFromTimestamp(1596633255).ToString() // 2020-08-05 13:14:15 +0000 UTC

carbon.Parse("2020-07-05 13:14:15").DiffForHumans() // 1 month before
carbon.Parse("2020-07-05 13:14:15").SetLocale("zh-CN").DiffForHumans() // 1 月前

carbon.ClearTestNow()
carbon.IsTestNow() // false

For more usage examples, please refer to official document.

For performance test reports, please refer to benchmark report

References

Contributors

Thanks to all the following who contributed to Carbon:

Translators

Ask for help to translate Carbon in other localized languages

How to add new localized language support to carbon

Sponsors

Carbon is a non-commercial open source project. If you want to support Carbon, you can buy a cup of coffee for developer.

Thanks

Carbon had been being developed with GoLand under the free JetBrains Open Source license, I would like to express my thanks here.

JetBrains

License

Carbon is licensed under the MIT License, see the LICENSE file for details.

Explore related projects