gpt4 book ai didi

time - 如何从非英语字符串中解析月份

转载 作者:IT王子 更新时间:2023-10-29 00:40:45 25 4
gpt4 key购买 nike

我想在 go 中将以下字符串解析为日期:

"This item will be released on March 9, 2014."

我关注了this并想出了:

func findReleaseDateString(raw string) time.Time {
test, err := time.Parse("This item will be released on January 2, 2006.", raw)
if err != nil {
panic(err)
}

return test
}

这就像英文字符串的魅力。

我的问题:我想解析德语字符串。喜欢:

"Dieser Artikel wird am 9. März 2014 erscheinen."

我知道,我可以通过正则表达式匹配日、月和年,然后对其进行解析。但是否有可能告诉 time.Parse 以使用不同的月份常量集

最佳答案

time 包目前没有国际化支持。在等待这种情况发生时,您可以尝试使用包装器包,例如:

github.com/goodsign/monday

monday 的文档所述:

Monday is not an alternative to standard time package. It is a temporary solution to use while the internationalization features are not ready.

That's why monday doesn't create any additional parsing algorithms, layout identifiers. It is just a wrapper for time.Format and time.ParseInLocation and uses all the same layout IDs, constants, etc.

这是您使用 monday 的示例:

package main

import (
"fmt"
"github.com/goodsign/monday"
"time"
)

func findReleaseDateString(raw string) time.Time {
loc, _ := time.LoadLocation("Europe/Berlin")
t, err := monday.ParseInLocation("Dieser Artikel wird am 2. January 2006 erscheinen.", raw, loc, monday.LocaleDeDE)
if err != nil {
panic(err)
}

return t
}

func main() {
t := findReleaseDateString("Dieser Artikel wird am 9. März 2014 erscheinen.")
fmt.Println(t)
}

输出:

2014-03-09 00:00:00 +0100 CET

关于time - 如何从非英语字符串中解析月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21696689/

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