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

3 回复

kecci:

已加星标

感谢你的加星标,我希望在使用后你能给我一些感受和建议。

更多关于Go-carbon v2.2.1 发布:简洁、语义化且开发者友好的 Golang 日期时间处理包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


已经点过星了! 我非常喜欢这个库处理时间相关功能的方式,它既易于人类阅读又轻量级(紧凑)。 感谢分享 @gouguoyin 🤝

GitHub

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%,特别是边界条件测试更完善。

回到顶部