
carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
carbon 目前已捐赠给 dromara 开源组织,已被 awesome-go 收录,并获得 gitee 2024 年最有价值项目(GVP)和 gitcode 2024 年度 G-Star 项目,如果您觉得不错,请给个 star 吧

document: carbon.go-pkg.com
github: github.com/dromara/carbon
gitee: gitee.com/dromara/carbon
gitcode: gitcode.com/dromara/carbon
language.go 的 SetLocale 方法中使用 sync.Once 确保语言文件只加载一次,使用 sync.Map 进行线程安全的缓存helper.go 的 format2layout 方法中为转义字符处理添加边界检查,防止越界访问导致的 panic 1 Ipsum 84 天前 via Android 点赞 |
2 iseki 84 天前 via Android 有没有实现了 threeten 模型的时间库?本来想自己搓一个,但是太麻烦了,工作量很大。 |
6 iseki 84 天前 via Android @gouguoyin 我没看到你和 ThreeTen 对标的类型定义啊,类似 Instant LocalDateTime LocalDate ZonedDateTime 这样的东西。 |
8 gouguoyin OP @iseki carbon 提供了 SetTimezone 方法来方便切换时区,如 carbon.Parse("2020-08-05 13:14:15").SetTimezone(carbon.PRC).ToString() // 2020-08-05 21:14:15 +0800 CST |
9 iseki 84 天前 via Android @gouguoyin 唔,不行,区分类型的一个目的是类型安全。 比如我的函数入参是一个 Instant ,代表我不关心除绝对时间点之外的任何信息;如果入参是一个 LocalDate ,意味着我只接受一个日期,时间点该如何转换为当地日期是调用者需要考虑到事情。 你这样的设计完全无法表达这个语义。 |
10 dandankele 83 天前 才发现 dromara 社区有那么多熟悉的项目..这是个什么神奇的组织 |
11 gouguoyin OP |