一尘不染

使用time.Format时的本地化

go

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

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

例:

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

输出:

2014年1月28日星期二

所需的输出:

Tis 28 Januari 2014年

操场


阅读 246

收藏
2020-07-02

共1个答案

一尘不染

正如您在时间包源代码中看到的那样,值是在源代码中硬编码的。因此,基本上,Go目前不支持i18n。i18n在Go路线图中,甚至在常见问题中也提到过,但最近没有关于该主题的评论。

同时,您可以尝试使用星期一套餐:

  // Change LocaleEnUS to the locale you want to use for translation
  monday.Format(time.Now(), "Mon 2 January 2006", monday.LocaleEnUS)
2020-07-02