carbon 是一个轻量级、语义化、对开发者友好的 Golang 时间处理库,提供了对时间穿越、时间差值、时间极值、时间判断、星座、星座、农历、儒略日 / 简化儒略日、波斯历 / 伊朗历的支持。
carbon 目前已捐赠给 dromara 开源组织,已被 awesome-go 收录,并获得 gitee 2024 年最有价值项目(GVP)和 gitcode 2024 年度 G-Star 项目,如果您觉得不错,请给个 star 吧
github.com/dromara/carbon
gitee.com/dromara/carbon
gitcode.com/dromara/carbon
更新日志
golang
最低版本依赖升级到1.18
carbon
,julian
,lunar
,persian
从值传递改成指针传递- 新增
ZoneName
方法获取时区名称 - 新增
HasError
方法判断是否有错误 - 新增
IsNil
方法判断是否是nil
- 新增
Copy
方法对carbon
进行深度复制 - 新增
WeekStartsAt
方法获取周起始日期 - 新增示例文件
xxx_example.go
- 新增
constant.go
文件,将常量从carbon.go
文件迁移到此文件 - 默认全局时区从
Local
更改为UTC
Offset
方法更名为ZoneOffset
IsSetTestNow
方法更名为IsTestNow
UnSetTestNow
方法更名为CleanTestNow
- 移除
Location
方法,由Timezone
方法替代 - 更改
IsValid
和IsInvalid
方法判断逻辑,zero time
不再视为无效时间 - 设置全局默认时区时同步更新
time.Local
- 重构
database.go
,移除carbon.DateTime
、carbon. DateTimeMilli
、carbon.DateTimeMicro
、carbon.DateTimeNano
、carbon. Date
、carbon.DateMilli
、carbon.DateMicro
、carbon.DateNano
、carbon.Time
、carbon.TimeMilli
、carbon.TimeMicro
、carbon.TimeNano
、carbon.Timestamp
、carbon.TimestampMilli
、carbon.TimestampMicro
、carbon.TimestampNano
字段类型, 使用泛型字段替代以实现MarshalJSON/UnmarshalJSON
时自定义输出格式