Golang Go语言 go-carbon v2.2.14 发布,轻量级、语义化、对开发者友好的时间处理库

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

更新日志
  • 修复 ToWeekString ToShortWeekString 方法忽略 SetWeekStartsAt 设置的 bug
  • 增加 Parse 方法更多解析格式的支持
  • timezone[len(timezone)-1] 更改为 timezone[0]
  • 提高 Fastest 方法的单元测试覆盖率
  • 修复文档拼写错误

Golang Go语言 go-carbon v2.2.14 发布,轻量级、语义化、对开发者友好的时间处理库

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

29 回复

这 api 做的真好看, 赞

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


很不错, 说明很清晰,虽然还没用过

Add(amount int, unit Unit)
Sub(amounr int, unit Unit)

提一个小小的需求:希望有个 API 可以提供,指定 time 的这个月,有多少天。

这样处理会面临溢出问题,有些方法是需要处理月份是否溢出问题,比如 2023-01-31,增加一个月,就需要考虑是否跨月。目前是分成两类方法,如 AddMonthsAddMonthsNoOverflow
go<br>carbon.Parse("2020-01-31 13:14:15").AddMonth().ToDateTimeString() // 2020-03-02 13:14:15<br><br>carbon.Parse("2020-01-31 13:14:15").AddMonthNoOverflow().ToDateTimeString() // 2020-02-29 13:14:15<br>

已有,更多查看文档 https://github.com/golang-module/carbon#getter

carbon.Parse(“2020-02-01 13:14:15”).DaysInMonth() // 29
carbon.Parse(“2020-04-01 13:14:15”).DaysInMonth() // 30
carbon.Parse(“2020-08-01 13:14:15”).DaysInMonth() // 31

还有指定年有多少天的方法 DaysInYear

#6 棒!

为啥叫 carbon ,最近需求时间处理有点多,正好看看

已 star 建议补充 benchmark

#9

我猜是因为 “碳同位素定年法”

#5 至少提供这样的通用接口,剩下的是用户的责任。

感谢分享,看到两边 go.mod 的 package 是不同的,是手动维护的吗?或者用脚本替换?

为啥我这样引入不了

手残按错了,补充下问题

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

我的版本是:go version go1.18.10 darwin/arm64

两边 go.mod 的 package 是不同的?那两边?

后面会补充的

#15 我 go get github.com/golang-module/carbon/v2 可以的,你那边报什么错误?

PHP 有个 composer 包叫 carbon ,非常好用,API 参考了

#9 目测是 PHP 转 GO 的,Carbon 在 PHP 这边是一个很知名的包。

大致看了一下 API ,几乎都一样了。

原包下面提到来自:

Radiocarbon dating - Wikipedia
https://en.wikipedia.org/wiki/Radiocarbon_dating?useskin=vector

#19


go get -u github.com/golang-module/carbon/v2
cannot find package “github.com/golang-module/carbon/v2” in any of:
/opt/homebrew/Cellar/[email protected]/1.18.10/libexec/src/github.com/golang-module/carbon/v2 (from $GOROOT)
/Users/zk/Work/code/go/src/github.com/golang-module/carbon/v2 (from $GOPATH)

难道是要开启 gomodule 么

不同地址就是不同的包,但是 api 都一样,gitee 只是为了方便国内用户使用。

必须开启 go module

#24 😄好的我试下

go 从 1.11 后就开始使用 module 作为唯一包管理工具

#23 明白

v2.3.1 已加上 benchmark

go-carbon v2.2.14的发布,无疑为Golang开发者提供了一个更为轻量级、语义化且友好的时间处理库。以下是对该版本的简要解读:

go-carbon,或简称为carbon,是一个专注于时间处理的Golang库。其设计理念是轻量级、语义化,以及对开发者友好。这意味着carbon提供了易于理解和使用的时间处理API,降低了时间处理的复杂性。

在carbon v2.2.14版本中,修复了ToWeekString和ToShortWeekString方法忽略SetWeekStartsAt设置的bug,增加了Parse方法更多解析格式的支持,改进了timezone的处理方式,并提高了Fastest方法的单元测试覆盖率。这些改进使得carbon在处理时间时更加准确、灵活和可靠。

此外,carbon支持链式调用,使得代码更加简洁和易读。对于Golang开发者来说,这无疑是一个提高开发效率和代码质量的好工具。

总的来说,go-carbon v2.2.14是一个值得尝试的时间处理库。如果你正在寻找一个轻量级、语义化且对开发者友好的Golang时间处理库,那么carbon绝对是一个不错的选择。你可以通过访问其GitHub或Gitee页面了解更多信息并进行安装使用。

回到顶部