carbon

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

5079
256
Go

Carbon

Carbon Release
Go Test
Go Report Card
Go Coverage
Carbon Doc
Featured|HelloGitHub
License

简体中文 | English | 日本語

项目简介

一个轻量级、语义化、对开发者友好的 golang 时间处理库,不依赖于 任何 第三方库, 100% 单元测试覆盖率,已被 awesome-gohello-github 收录,并获得
gitee 2024 年最有价值项目(GVP)和 gitcode 2024 年度开源摘星计划 (G-Star) 项目

gvp g-star

仓库地址

github.com/dromara/carbon

gitee.com/dromara/carbon

gitcode.com/dromara/carbon

快速开始

安装使用

go version >= 1.21

// 使用 github 库
go get -u github.com/dromara/carbon/v2
import "github.com/dromara/carbon/v2"

// 使用 gitee 库
go get -u gitee.com/dromara/carbon/v2
import "gitee.com/dromara/carbon/v2"

// 使用 gitcode 库
go get -u gitcode.com/dromara/carbon/v2
import "gitcode.com/dromara/carbon/v2"

Carbon 已经捐赠给了 dromara 开源组织,仓库地址发生了改变,如果之前用的路径是
golang-module/carbon,请在 go.mod 里将原地址更换为新路径,或执行如下命令

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

用法示例

默认时区是 UTC, 语言环境是 英语,一周开始日期是 周一,周末是 周六周日

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

文档

请访问 carbon.go-pkg.com 查看完整文档

参考项目

贡献者

感谢以下所有为 Carbon 做出贡献的人:

赞助

Carbon 是一个非商业开源项目, 如果你想支持 Carbon,
你可以为开发者 购买一杯咖啡

致谢

Carbon已获取免费的 JetBrains 开源许可证,在此表示感谢

JetBrains

开源协议

Carbon 遵循 MIT 开源协议, 请参阅 LICENSE 查看详细信息。