Go-carbon v2.2.6发布:一个简单、语义化且开发者友好的Golang日期时间处理包

Go-carbon v2.2.6发布:一个简单、语义化且开发者友好的Golang日期时间处理包 Carbon 是一个简单、语义化且对开发者友好的 Golang 日期时间包。

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"
更新日志
  • 修复了 DiffInYearsAge 方法中的错误 #181
  • 修复了 json.Unmarshal 后丢失时区的错误 #178
  • CreateFromStdTime 方法从 carbon.go 移至 creator.go
  • ToStdTime 方法从 carbon.go 移至 outputer.go
  • 将已弃用的方法 FromStdTimeTime2CarbonCarbon2Time 移至 deprecated.go
  • stretchr/testify 更新至 v1.8.4

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

1 回复

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


Go-carbon v2.2.6 的发布进一步提升了包的稳定性和代码组织。修复 DiffInYearsjson.Unmarshal 的时区问题非常关键,这直接影响了核心功能的可靠性。方法的重构(如移动 CreateFromStdTime)和弃用方法的集中管理,体现了更清晰的模块化设计。

以下是一些常见使用示例,展示了其语义化API的优势:

package main

import (
    "encoding/json"
    "fmt"
    "github.com/golang-module/carbon/v2"
)

func main() {
    // 1. 创建当前时间(自动处理时区)
    now := carbon.Now()
    fmt.Println(now.ToDateTimeString()) // 输出: 2023-10-01 15:04:05
    
    // 2. 修复后的 DiffInYears 使用
    birthday := carbon.CreateFromDate(1990, 1, 1)
    age := birthday.DiffInYears(now)
    fmt.Printf("年龄: %d 岁\n", age)
    
    // 3. JSON 序列化/反序列化(已修复时区丢失)
    type Event struct {
        Time carbon.Carbon `json:"time"`
    }
    event := Event{Time: carbon.Now().SetTimezone("Asia/Shanghai")}
    data, _ := json.Marshal(event)
    fmt.Println(string(data)) // 输出: {"time":"2023-10-01 15:04:05 +08:00"}
    
    var decodedEvent Event
    json.Unmarshal(data, &decodedEvent)
    fmt.Println(decodedEvent.Time.Timezone()) // 输出: Asia/Shanghai
    
    // 4. 语义化日期操作
    nextWeek := now.AddWeek()
    fmt.Println(nextWeek.ToDateString())
    
    // 5. 与标准 time.Time 互操作
    stdTime := now.ToStdTime()
    carbonTime := carbon.CreateFromStdTime(stdTime)
    fmt.Println(carbonTime.ToDateTimeString())
}

此次更新中,CreateFromStdTimeToStdTime 的方法位置调整不影响功能,但需要开发者注意导入路径。已弃用的方法(如 FromStdTime)仍可在 deprecated.go 中找到,但建议迁移到新方法。依赖库 testify 的版本更新也带来了更好的测试兼容性。

回到顶部