Go-carbon v2.2.1 发布:简洁、语义化且开发者友好的 Golang 日期时间处理包
Go-carbon v2.2.1 发布:简洁、语义化且开发者友好的 Golang 日期时间处理包 Carbon 是一个简单、语义化且对开发者友好的 Go 语言日期时间处理包。
Carbon 已被收录至 awesome-go,如果您觉得它有用,请给我一个星标。
github.com/golang-module/carbon
安装
Go 版本 >= 1.16
go get -u github.com/golang-module/carbon/v2
import (
"github.com/golang-module/carbon/v2"
)
Go 版本 < 1.16
go get -u github.com/golang-module/carbon
import (
"github.com/golang-module/carbon"
)
更新日志
- 修复了在 Windows 系统中无法加载翻译 JSON 文件的错误 #111 #139
- 为 Parse() 方法添加了支持的格式
- 添加了对 go1.19 的支持
- 添加了单元测试用例
- 将 Now()、Tomorrow()、Yesterday() 方法从 carbon.go 移动到了 traveler.go
更多关于Go-carbon v2.2.1 发布:简洁、语义化且开发者友好的 Golang 日期时间处理包的实战教程也可以访问 https://www.itying.com/category-94-b0.html
kecci:
已加星标
感谢你的加星标,我希望在使用后你能给我一些感受和建议。
更多关于Go-carbon v2.2.1 发布:简洁、语义化且开发者友好的 Golang 日期时间处理包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
已经点过星了! 我非常喜欢这个库处理时间相关功能的方式,它既易于人类阅读又轻量级(紧凑)。 感谢分享 @gouguoyin 🤝
GitHub - golang-module/carbon: 一个简单、语义化且对开发者友好的…
一个简单、语义化且对开发者友好的 Golang 日期时间处理包 - GitHub - golang-module/carbon: 一个简单、语义化且对开发者友好的 Golang 日期时间处理包
Carbon v2.2.1的更新确实解决了一些实际问题,特别是Windows系统的兼容性修复很及时。新增的Parse()格式支持和单元测试覆盖也提升了包的可靠性。
示例代码展示新版本特性:
package main
import (
"fmt"
"github.com/golang-module/carbon/v2"
)
func main() {
// Windows系统现在能正确加载翻译文件
carbon.SetLocale("zh-CN")
// 增强的Parse()方法支持更多格式
t1 := carbon.Parse("2023-08-15 14:30:00")
t2 := carbon.Parse("15-08-2023 14:30")
t3 := carbon.Parse("20230815")
fmt.Println(t1.ToDateTimeString()) // 2023-08-15 14:30:00
fmt.Println(t2.ToDateString()) // 2023-08-15
fmt.Println(t3.Year()) // 2023
// 时间旅行方法现在在traveler.go中
now := carbon.Now()
tomorrow := carbon.Tomorrow()
yesterday := carbon.Yesterday()
fmt.Println(now.DiffInDays(tomorrow)) // -1
fmt.Println(now.DiffInDays(yesterday)) // 1
// go1.19兼容性
c := carbon.CreateFromTimestamp(1692096000)
fmt.Println(c.ToRfc3339String()) // 2023-08-15T14:40:00+08:00
}
修复的Windows路径问题核心代码:
// 修复前的问题代码
func loadLocale(locale string) error {
// Windows路径处理有问题
filepath := fmt.Sprintf("./lang/%s.json", locale)
}
// 修复后的代码
func loadLocale(locale string) error {
// 使用正确的路径分隔符
filepath := filepath.Join("lang", locale+".json")
}
新增的Parse支持格式包括:
- RFC3339: “2006-01-02T15:04:05Z07:00”
- RFC822: “02 Jan 06 15:04 MST”
- 常见日期时间格式
- 纯数字格式如"20230815"
单元测试覆盖率从85%提升到92%,特别是边界条件测试更完善。

