Go-carbon v2.3.10 发布:一款简洁、语义化且开发者友好的 Golang 日期时间处理包
Go-carbon v2.3.10 发布:一款简洁、语义化且开发者友好的 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"
更新日志
- 修复了
json.Unmarshaler解码包含 null 值的 JSON 字符串时的错误 - 新增
ISO8601ZuluLayout、ISO8601ZuluMilliLayout、ISO8601ZuluMicroLayout、ISO8601ZuluNanoLayout常量 - 新增
FormattedDateLayout、FormattedDayDateLayout常量 - 新增
ISO8601ZuluFormat、ISO8601ZuluMilliFormat、ISO8601ZuluMicroFormat、ISO8601ZuluNanoFormat常量 - 新增
FormattedDateFormat、FormattedDayDateFormat常量 - 新增
ToIso8601ZuluString、ToIso8601ZuluMilliString、ToIso8601ZuluMicroString、ToIso8601ZuluNanoString方法 - 新增
ToFormattedDateString、ToFormattedDayDateString方法 - 新增
GoString方法 - 在使用
json.Unmarshaler时支持包含 null 的 JSON 字符串 #225 - 移除已弃用的
ToFormatString方法,请使用Format方法替代 - 移除已弃用的
ToLayoutString方法,请使用Layout方法替代
更多关于Go-carbon v2.3.10 发布:一款简洁、语义化且开发者友好的 Golang 日期时间处理包的实战教程也可以访问 https://www.itying.com/category-94-b0.html
1 回复
更多关于Go-carbon v2.3.10 发布:一款简洁、语义化且开发者友好的 Golang 日期时间处理包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Go-carbon v2.3.10 的更新确实为日期时间处理带来了更多便利,特别是新增的 ISO 8601 Zulu 格式支持和格式化常量。以下是一些示例代码,展示如何使用新功能:
package main
import (
"encoding/json"
"fmt"
"github.com/golang-module/carbon/v2"
)
func main() {
// 创建当前时间
now := carbon.Now()
// 使用新增的 ISO 8601 Zulu 格式方法
fmt.Println("ISO8601 Zulu:", now.ToIso8601ZuluString())
fmt.Println("ISO8601 Zulu with milliseconds:", now.ToIso8601ZuluMilliString())
fmt.Println("ISO8601 Zulu with microseconds:", now.ToIso8601ZuluMicroString())
fmt.Println("ISO8601 Zulu with nanoseconds:", now.ToIso8601ZuluNanoString())
// 使用新增的格式化方法
fmt.Println("Formatted date:", now.ToFormattedDateString())
fmt.Println("Formatted day date:", now.ToFormattedDayDateString())
// 使用新增的常量进行格式化
fmt.Println("Using layout constant:", now.Layout(carbon.ISO8601ZuluLayout))
fmt.Println("Using format constant:", now.Format(carbon.ISO8601ZuluFormat))
// JSON 编解码示例(支持 null 值)
type Event struct {
Time carbon.Carbon `json:"time"`
}
// 解码包含 null 的 JSON
jsonStr := `{"time": null}`
var event Event
if err := json.Unmarshal([]byte(jsonStr), &event); err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Decoded time:", event.Time)
}
// GoString 方法示例
fmt.Printf("GoString output: %#v\n", now)
}
新版本中移除已弃用的 ToFormatString 和 ToLayoutString 方法,现在应该统一使用 Format 和 Layout 方法:
// 旧方法(已移除)
// str := now.ToFormatString("2006-01-02 15:04:05")
// 新方法
str := now.Format("2006-01-02 15:04:05")
ISO 8601 Zulu 格式常量让时间序列化更加标准化:
// 使用常量进行序列化
data := map[string]string{
"timestamp": now.Format(carbon.ISO8601ZuluFormat),
"created_at": now.Layout(carbon.ISO8601ZuluLayout),
}
jsonData, _ := json.Marshal(data)
fmt.Println(string(jsonData))
这些改进使得 Go-carbon 在处理国际化时间格式和 JSON 交互时更加可靠和便捷。

