gpt4 book ai didi

date - 如何使用语言环境将日期转换为字符串?

转载 作者:IT王子 更新时间:2023-10-29 01:23:54 26 4
gpt4 key购买 nike

我以这种方式将日期转换为字符串:

d.Format("Mon 02. Jan")

我得到类似的东西

Fri 27. Jan

如何切换语言环境并获取其他语言的字符串?

最佳答案

你不能。 Go 标准库不包含本地化的月、日和时区名称。这些名称被连接到 time 包中。

例如,Month.String() 返回的月份名称存储在未导出的 time.month 全局变量中:

var months = [...]string{
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
}

func (m Month) String() string { return months[m-1] }

同样,工作日的名称来自Weekday.String() , 存储在未导出的变量 time.days 中。

话虽如此,可能有第 3 方库支持您的需求。这是一个可能对您有所帮助的不完整的:https://github.com/mattbaird/go-i18n-formats

正如下面 Igor Chubin 所分享的,这个第 3 方库更加完整:https://github.com/klauspost/lctime

另请注意,虽然提供通用的多语言时间格式包并不是一件容易的事,但如果您确实需要它,您可以使用 time 包,将其复制到您的项目中,然后只翻译名称为您需要的语言。

另请注意,支持少量语言和少量布局,您可以轻松地自行创建格式。

例如,下面的代码使用您在问题中使用的布局来格式化给定的匈牙利语 time.Time 值:

func Format(t time.Time) string {
return fmt.Sprintf("%s %02d. %s",
days[t.Weekday()][:3], t.Day(), months[t.Month()-1][:3],
)
}

var days = [...]string{
"Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"}

var months = [...]string{
"Január", "Február", "Március", "Április", "Május", "Június",
"Július", "Augusztus", "Szeptember", "Október", "November", "December",
}

测试它:

fmt.Println(Format(time.Now()))

Go Playground 上的输出:

Ked 10. Nov

在我的本地机器上输出:

Pén 27. Jan

关于date - 如何使用语言环境将日期转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41897265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com