在time
包中,格式化time.Time
变量时,输出将使用未导出的[]字符串切片中定义的数周和月的英文名称。
如何使用其他语言本地化字符串(希望仍然使用Format()
)?
示例:
fmt.Println(time.Now().Format("Mon 2 January 2006"))
输出:
2014年1月28日星期二
期望的输出:
Tis 28 Januari 2014
答案 0 :(得分:4)
正如您在时间包sourcecode中看到的那样,值在源代码中是硬编码的。所以,基本上,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)