使用time.Format时的本地化

时间:2014-01-28 08:12:29

标签: time localization go

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

如何使用其他语言本地化字符串(希望仍然使用Format())?

示例:

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

输出:

  

2014年1月28日星期二

期望的输出:

  

Tis 28 Januari 2014

Playground

1 个答案:

答案 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)