go-carbon 1.2.6 版本发布,优化错误处理机制,弃用出错直接panic的粗暴处理方式

carbon 是一个轻量级、语义化、对开发者友好的Golang时间处理库,支持链式调用、农历和gorm、xorm等主流orm

如果您觉得不错,请给个star吧

github:github.com/golang-module/carbon

gitee:gitee.com/go-package/carbon

错误处理

如果有多个错误发生,只返回第一个错误信息,前一个错误排除后才返回下一个错误信息

场景一
c := carbon.SetTimezone(PRC).Parse("123456")
if c.Error != nil {
 // 错误处理... fmt.Println(c.Error)}
fmt.Println(c.ToDateTimeString())
// 输出
the value "123456" and layout "2006-01-02 15:04:05" don't match
场景二
c := carbon.SetTimezone("XXXX").Parse("2020-08-05")
if c.Error != nil {
 // 错误处理... fmt.Println(c.Error)}
fmt.Println(c.ToDateTimeString())
// 输出
invalid timezone "XXXX", please see the $GOROOT/lib/time/zoneinfo.zip file for all valid timezone
场景三
c := carbon.SetTimezone("XXXX").Parse("12345678")
if c.Error != nil {
 // 错误处理... fmt.Println(c.Error)}
fmt.Println(c.ToDateTimeString())
// 输出
invalid timezone "XXXX", please see the $GOROOT/lib/time/zoneinfo.zip file for all valid timezone

建议使用SetTimezone()、Parse()、ParseByFormat()、ParseByDuration()、AddDuration()、SubDuration()等方法时先进行错误处理判断,除非你能确保传入参数无误

更新日志

  • 更新readme.md文档
  • 完善单元测试代码覆盖率
  • carbon结构体的Loc私有属性改成Loc公开属性
  • carbon结构体新增Error公开属性
  • 优化错误处理机制,弃用出错直接panic的粗暴处理方式
  • 新增AddCenturies()方法获取N世纪后时间
  • 新增AddCentury()方法获取一世纪后时间
  • 新增SubCenturies()方法获取N世纪前时间
  • 新增SubCentury()方法获取一世纪前时间
  • 新增NextCenturies()方法获取N世纪后时间(不跨月)
  • 新增NextCentury()方法获取一世纪后时间(不跨月)
  • 新增PreCenturies()方法获取N世纪前时间(不跨月)
  • 新增PreCentury()方法获取一世纪前时间(不跨月)
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

不错

3年前 评论
普罗米修斯 (楼主) 3年前
fatrbaby

这种改动应该发个大版本的,因为它改变了用户的行为模式。

3年前 评论
普罗米修斯 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
78
粉丝
16
喜欢
124
收藏
98
排名:679
访问:1.1 万
私信
所有博文
社区赞助商