Golang carbon库1.5.0版本发布:修复已知问题并新增翻译支持
Golang carbon库1.5.0版本发布:修复已知问题并新增翻译支持 一个简单、语义化且对开发者友好的Go语言日期时间包
Carbon已被awesome-go收录,如果您觉得它有用,请给我一个星标
更新日志
- 优化多语言支持,无需将lang目录复制到项目目录
- 移除setdir()方法,语言目录不允许自定义
- lunar.ToString()方法重命名为lunar.ToDateString()
- 修复ToDayDateTimeString()输出错误的问题
- 修复lunar()在其他时区输出错误的问题
- 单元测试覆盖率提升至99.9%
- 新增SetYearNoOverflow()方法,用于设置年份,月份不会溢出
- 新增SetMonthNoOverflow()方法,用于设置月份,月份不会溢出
- 新增德语翻译文件lang/de.json,由benzammour翻译
- 新增日语README文档readme.jp.md
更多关于Golang carbon库1.5.0版本发布:修复已知问题并新增翻译支持的实战教程也可以访问 https://www.itying.com/category-94-b0.html
Go-carbon 版本 1.5.2 已发布
Carbon 是一个简单、语义化且对开发者友好的 Golang 日期时间包。 Carbon 已被 awesome-go 收录,如果您觉得它有帮助,请给我一个星标。 github.com/golang-module/carbon
变更日志
- 修复了
format()和ParseByFormat()方法无效的 bug - 将 carbon 结构体中的公共字段
Loc和Lang更改为私有字段loc和lang - 添加
SetWeekStartsAt()方法以设置一周的起始日期 - 新增
Timestamp()方法以获取秒级时间戳…
更多关于Golang carbon库1.5.0版本发布:修复已知问题并新增翻译支持的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Carbon 1.5.0版本的更新确实解决了一些关键问题并增强了国际化支持。以下是针对更新内容的专业分析:
1. 多语言支持优化 现在可以直接使用内置语言包,无需手动复制lang目录:
import "github.com/golang-module/carbon/v2"
func main() {
// 设置全局语言为德语
carbon.SetLocale("de")
// 或者针对特定实例设置
c := carbon.Now().SetLocale("de")
fmt.Println(c.DiffForHumans()) // vor 2 Sekunden
}
2. 修复的时区问题 lunar()方法在其他时区的输出错误已修复:
// 1.5.0之前版本在非UTC时区可能出错
carbon.SetTimezone("Asia/Shanghai")
lunar := carbon.Now().Lunar()
fmt.Println(lunar.ToDateString()) // 正确输出农历日期
3. 新增的非溢出设置方法 SetYearNoOverflow()和SetMonthNoOverflow()方法:
c := carbon.Parse("2023-01-31")
// 传统方法会导致月份溢出
c.SetMonth(2) // 2023-03-03(自动调整)
// 新方法保持日期有效性
c.SetMonthNoOverflow(2) // 2023-02-28(不会溢出到三月)
c.SetYearNoOverflow(2024) // 2024-02-28(闰年处理)
4. ToDayDateTimeString()修复 修复了格式化输出问题:
c := carbon.Parse("2023-12-25 14:30:45")
fmt.Println(c.ToDayDateTimeString())
// 正确输出: Mon, Dec 25, 2023 2:30 PM
5. 单元测试覆盖率提升 99.9%的测试覆盖率确保了包的稳定性:
// 新增的测试用例覆盖了边界情况
func TestCarbon_NoOverflow(t *testing.T) {
c := carbon.Parse("2023-01-31")
c.SetMonthNoOverflow(2)
assert.Equal(t, "2023-02-28", c.ToDateString())
}
6. 翻译文件结构 新增的德语翻译文件示例:
{
"months": "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember",
"short_months": "Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.",
"weekdays": "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag",
"short_weekdays": "So._Mo._Di._Mi._Do._Fr._Sa.",
"am": "AM",
"pm": "PM"
}
这些更新使Carbon在日期时间处理上更加可靠,特别是多语言支持和农历计算的改进,对于国际化项目很有价值。移除setdir()方法虽然限制了自定义语言目录,但简化了部署流程。

