go-carbon 2.1.9 版本发布, 轻量级、语义化、对开发者友好的Golang时间处理库

gouguoyin · 2022-08-03 09:38:12 · 1911 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2022-08-03 09:38:12 的主题,其中的信息可能已经有所发展或是发生改变。

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"
 )
更新日志
  • 优化 Time2Carbon() 方法,从 time.Time 里提提取时区作为当前时区
  • 新增 SetLocation() 方法
  • 修复部分文档描述错误
  • 增加意大利语支持,由 nicoloHevelop 翻译

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1911 次点击  ∙  1 赞  
加入收藏 微博
1 回复  |  直到 2022-08-04 21:01:20
lgnice
lgnice · #1 · 3年之前

优化 Time2Carbon() 方法,从 time.Time 里提提取时区作为当前时区

这个有向前兼容性问题, 以前我用的时候, 全部是time.Local的, 现在全部是time.UTC了, 我这边所有的代码都必须添加: .SetLocation(time.Local)

比如:

carbon.Time2Carbon(user.Time).SetLocation(time.Local).ToDateTimeString(),

我的使用场景:

  1. user.Time字段以time.Time 存入mongo数据库(iso8601格式, utc时间);
  2. 从mongo查询出来, user.Time 读出来, 里面的时区就是utc时间

升级carbon之前, Time2Carbon 是默认为time.Local的, 现在升级到2.19之后, 默认是time.UTC的了.

也许你这样改有你的理由吧, 但是真的破坏了向前兼容性. 需要在release着重说明一下, 不然已经上线的产品,升级之后全部出问题.

昨天我升级之后, 今天我的好多客户都说时间有问题,少了8个小时.

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传