carbon 是一個輕量級、語義化、對開發者友好的Golang時間處理庫,支援鏈式呼叫、農曆和gorm、xorm等主流orm
如果您覺得不錯,請給個star吧
github:github.com/golang-module/carbon
gitee:gitee.com/go-package/carbon
更新日誌
- 按照功能拆分檔案,最佳化程式碼組織結構
- 新增SetDir()、SetResources()、SetLanguage()方法用於自定義i18n
- 新增StartOfSecond()、EndOfSecond()方法
- 新增日語翻譯檔案lang/jp.json
- 修復goland中部分檔案typo警告
- 精簡最佳化程式碼
設定區域
// 方式一(推薦)
c := carbon.Now().AddHours(1).SetLocale("jp")
if c.Error != nil {
// 錯誤處理 fmt.Println(c.Error)
}
c.DiffForHumans() // 1 時間後
// 方式二
lang := NewLanguage()
if err := lang.SetLocale("jp");err != nil {
// 錯誤處理 fmt.Println(err)
}
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1 時間後
設定目錄
lang := NewLanguage()
if err := lang.SetDir("lang");err != nil {
// 錯誤處理 fmt.Println(err)
}
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1 小時後
部分自定義翻譯(其餘仍然按照指定的locale翻譯)
lang := NewLanguage()
if err := lang.SetLocale("en");err != nil {
// 錯誤處理 fmt.Println(err)
}
resources := map[string]string{
"hour":"%dh",}
lang.SetResources(resources)
carbon.Now().AddYears(1).SetLanguage(lang).DiffForHumans() // 1 year from now
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // 1h from now
完全自定義翻譯
lang := NewLanguage()
resources := map[string]string{
"year":"1 yr|%d yrs",
"month":"1 mo|%d mos",
"week":"%dw",
"day":"%dd",
"hour":"%dh",
"minute":"%dm",
"second":"%ds",
"now": "just now",
"ago":"%s ago",
"from_now":"in %s",
"before":"%s before",
"after":"%s after",
}
lang.SetResources(resources)
carbon.Now().AddYears(1).SetLanguage(lang).DiffForHumans() // in 1 yr
carbon.Now().AddHours(1).SetLanguage(lang).DiffForHumans() // in 1h
本作品採用《CC 協議》,轉載必須註明作者和本文連結