使用 time.Format 时的本地化

time包中,格式化time.Time变量时,输出将使用未导出的 []string 切片中定义的周和月的英文名称。

如何使用不同的语言(希望仍在使用Format())本地化字符串?

例子:

fmt.Println(time.Now().Format("Mon 2 January 2006"))

输出:

2014 年 1 月 28 日,星期二

期望的输出:

2014 年 1 月 28 日


拉风的咖菲猫
浏览 253回答 1
1回答

萧十郎

正如您在时间包源代码中看到的,值在源代码中是硬编码的。所以,基本上,Go 现在不支持 i18n。i18n 在 Go 路线图上,它甚至在faq 中提到过,但最近没有关于该主题的评论。同时,您可以尝试使用Monday包:  // Change LocaleEnUS to the locale you want to use for translation   monday.Format(time.Now(), "Mon 2 January 2006", monday.LocaleEnUS)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go