Golang Go语言:go-carbon v2.3.0 圣诞特别版发布,轻量级、语义化、对开发者友好的时间处理库

发布于 1周前 作者 eggper 来自 Go语言

go-carbon v2.3.0 圣诞节特别版发布,这应该是 2023 年的最后一个版本,祝大家圣诞节快乐!

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。

目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧

github.com/golang-module/carbon

gitee.com/golang-module/carbon

安装使用

Golang 版本大于等于 1.16
// 使用 github 库
go get -u github.com/golang-module/carbon/v2

import “github.com/golang-module/carbon/v2

// 使用 gitee 库 go get -u gitee.com/golang-module/carbon/v2

import “gitee.com/golang-module/carbon/v2

Golang 版本小于 1.16
// 使用 github 库
go get -u github.com/golang-module/carbon

import “github.com/golang-module/carbon

// 使用 gitee 库 go get -u gitee.com/golang-module/carbon

import “gitee.com/golang-module/carbon

JSON
定义模型
type Person struct {
    Name string `json:"name"`
    Age int `json:"age"`
    Birthday carbon.Carbon `json:"birthday" carbon:"layout:2006-01-02"`
    GraduatedAt carbon.Carbon `json:"graduated_at" carbon:"layout:15:04:05"`
    CreatedAt carbon.Carbon `json:"created_at" carbon:"layout:2006-01-02 15:04:05"`
}

type Person struct {
    Name string `json:"name"`
    Age int `json:"age"`
    Birthday carbon.Carbon `json:"birthday" carbon:"format:Y-m-d"`
    GraduatedAt carbon.Carbon `json:"graduated_at" carbon:"format:H:i:s"`
    CreatedAt carbon.Carbon `json:"created_at" carbon:"format:Y-m-d H:i:s"`
}
实例化模型
now := Parse("2020-08-05 13:14:15", PRC)
person := Person {
    Name:        "gouguoyin",
    Age:         18,
    Birthday:    now,
    GraduatedAt: now,
    CreatedAt:   now,
}
JSON 编码
err1 := carbon.LoadTag(&person)
if err1 != nil {
    // 错误处理
    log.Fatal(err1)
}
data, err2 := json.Marshal(person)
if err2 != nil {
    // 错误处理
    log.Fatal(err2)
}
fmt.Printf("%s", data)
// 输出
{
    "name": "gouguoyin",
    "age": 18,
    "birthday": "2020-08-05",
    "graduated_at": "13:14:15",
    "created_at": "2020-08-05 13:14:15"
}
JSON 解码
str := `{
    "name": "gouguoyin",
    "age": 18,
    "birthday": "2020-08-05",
    "graduated_at": "13:14:15",
    "created_at": "2020-08-05 13:14:15"
}`
var person Person

err1 := carbon.LoadTag(&person) if err1 != nil { // 错误处理 log.Fatal(err1) }

err2 := json.Unmarshal([]byte(str), &person) if err2 != nil { // 错误处理 log.Fatal(err2) }

fmt.Sprintf("%s", person.Birthday) // 2002-08-05 fmt.Sprintf("%s", person.GraduatedAt) // 13:14:15 fmt.Sprintf("%s", person.CreatedAt) // 2002-08-05 13:14:15

更新日志
  • 正式移除弃用的 FromStdTime, Time2Carbon, Carbon2Time 方法

  • ToANSICString 方法更名为 ToAnsicString

  • CreateFromDateTime 方法中的毫秒设置为 0

  • CreateFromDate 方法中的时分秒设置为 0

  • 修复 DiffInMonths 方法错误

  • GormDataType 方法从 json.go 文件移动到 database.go 文件

  • 新增 LoadTag 方法,利用反射通过设置 tag 进行 json 自定义编码和解码

  • String 方法根据设置的不同 tag 输出不同格式字符串


Golang Go语言:go-carbon v2.3.0 圣诞特别版发布,轻量级、语义化、对开发者友好的时间处理库

更多关于Golang Go语言:go-carbon v2.3.0 圣诞特别版发布,轻量级、语义化、对开发者友好的时间处理库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

7 回复

紧跟节日步伐👍🏻😎,圣诞快乐 🎅🏻 🎄

更多关于Golang Go语言:go-carbon v2.3.0 圣诞特别版发布,轻量级、语义化、对开发者友好的时间处理库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


用得很多,看到这个,暂停登录,来表扬一下。

感谢支持,欢迎提出宝贵意见

非常好用,感谢

感谢支持,欢迎提出宝贵意见

针对帖子中提到的go-carbon v2.3.0圣诞特别版发布,作为GO语言方面的专家,我认为这确实是一个值得关注的更新。以下是我对go-carbon v2.3.0的简要评价:

go-carbon是一个轻量级、语义化、对开发者友好的Golang时间处理库,其v2.3.0圣诞特别版在保持这些特性的基础上,进一步提升了库的实用性和稳定性。

  1. 轻量级与高效:go-carbon的代码库非常精简,专注于时间处理的核心需求,同时注重性能优化,确保在高并发场景下也能保持高效。
  2. 语义化与友好:该库的API设计遵循语义化原则,使得开发者可以直观地理解和使用时间处理功能。此外,它还提供了详细的文档和示例,帮助开发者快速上手。
  3. 功能丰富:除了基本的日期时间计算外,go-carbon还支持链式调用、多时区转换、丰富的格式化选项等,满足开发者在不同场景下的需求。

总的来说,go-carbon v2.3.0圣诞特别版是一个值得推荐的Golang时间处理库,无论是初学者还是资深开发者,都能从中受益。如果你正在寻找一个高效、简洁的时间处理解决方案,那么go-carbon绝对是一个不错的选择。

回到顶部