2014-01-28 2 views
4

В пакете time при форматировании переменной time.Time выход будет использовать английские имена в течение недель и месяцев, как определено в неэкспортированных средах строки [].Локализация при использовании time.Format

Как локализовать строку, используя другой язык (надеюсь, все еще используя Format())?

Пример:

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

Выход:

вт 28 января 2014

Желаемый результат:

Tis 28 Januari 2014

Playground

ответ

3

Как вы можете видеть во времени пакета sourcecode, что значения HARDCODED в источнике. Итак, в принципе, 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) 
+1

Я боялся, что это было. Спасибо за указание обходного пакета. Экономит время! – ANisus

Смежные вопросы