
carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。
目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧
github.com/golang-module/carbon
gitee.com/golang-module/carbon
// 使用 github 库 go get -u github.com/golang-module/carbon/v2 import "github.com/golang-module/carbon/v2" // 使用 gitee 库 go get -u gitee.com/golang-module/carbon/v2 import "gitee.com/golang-module/carbon/v2" // 使用 github 库 go get -u github.com/golang-module/carbon import "github.com/golang-module/carbon" // 使用 gitee 库 go get -u gitee.com/golang-module/carbon import "gitee.com/golang-module/carbon" ToWeekString 和 ToShortWeekString 方法忽略 SetWeekStartsAt 设置的 bugParse 方法更多解析格式的支持timezone[len(timezone)-1] 更改为 timezone[0]Fastest 方法的单元测试覆盖率 1 Masoud2023 Dec 1, 2023 这 api 做的真好看, 赞 |
2 zyxk Dec 1, 2023 很不错, 说明很清晰,虽然还没用过 |
3 fgwmlhdkkkw Dec 1, 2023 Add(amount int, unit Unit) Sub(amounr int, unit Unit) |
4 pkoukk Dec 1, 2023 提一个小小的需求:希望有个 API 可以提供,指定 time 的这个月,有多少天。 |
5 gouguoyin OP @fgwmlhdkkkw 这样处理会面临溢出问题,有些方法是需要处理月份是否溢出问题,比如 `2023-01-31`,增加一个月,就需要考虑是否跨月。目前是分成两类方法,如 `AddMonths` 和 `AddMonthsNoOverflow` ```go carbon.Parse("2020-01-31 13:14:15").AddMonth().ToDateTimeString() // 2020-03-02 13:14:15 carbon.Parse("2020-01-31 13:14:15").AddMonthNoOverflow().ToDateTimeString() // 2020-02-29 13:14:15 ``` |
6 gouguoyin OP @pkoukk 已有,更多查看文档 https://github.com/golang-module/carbon#getter carbon.Parse("2020-02-01 13:14:15").DaysInMonth() // 29 carbon.Parse("2020-04-01 13:14:15").DaysInMonth() // 30 carbon.Parse("2020-08-01 13:14:15").DaysInMonth() // 31 |
9 sakuramanstein Dec 1, 2023 via Android 为啥叫 carbon ,最近需求时间处理有点多,正好看看 |
10 RedisMasterNode Dc 1, 2023 已 star 建议补充 benchmark |
11 lesismal Dec 1, 2023 |
12 fgwmlhdkkkw Dec 1, 2023 @gouguoyin #5 至少提供这样的通用接口,剩下的是用户的责任。 |
13 CEBBCAT Dec 1, 2023 感谢分享,看到两边 go.mod 的 package 是不同的,是手动维护的吗?或者用脚本替换? |
14 ruolis Dec 1, 2023 为啥我这样引入不了 |
15 ruolis Dec 1, 2023 |
17 gouguoyin OP @RedisMasterNode 后面会补充的 |
18 CEBBCAT Dec 1, 2023 |
19 CEBBCAT Dec 1, 2023 @ruooooooli #15 我 go get github.com/golang-module/carbon/v2 可以的,你那边报什么错误? |
20 moell Dec 1, 2023 @sakuramanstein PHP 有个 composer 包叫 carbon ,非常好用,API 参考了 |
21 Rache1 Dec 1, 2023 @sakuramanstein #9 目测是 PHP 转 GO 的,Carbon 在 PHP 这边是一个很知名的包。 大致看了一下 API ,几乎都一样了。 原包下面提到来自: Radiocarbon dating - Wikipedia https://en.wikipedia.org/wiki/Radiocarbon_dating?useskin=vector |
22 ruolis Dec 1, 2023 @CEBBCAT #19 go get -u github.com/golang-module/carbon/v2 cannot find package "github.com/golang-module/carbon/v2" in any of: /opt/homebrew/Cellar/[email protected]/1.18.10/libexec/src/github.com/golang-module/carbon/v2 (from $GOROOT) /Users/zk/Work/code/go/src/github.com/golang-module/carbon/v2 (from $GOPATH) 难道是要开启 gomodule 么 |
24 gouguoyin OP @ruooooooli 必须开启 go module |
26 gouguoyin OP @ruooooooli go 从 1.11 后就开始使用 module 作为唯一包管理工具 |
28 gouguoyin OP @RedisMasterNode v2.3.1 已加上 benchmark |