繁体   English   中英

如何用go time解析外文日期字符串

[英]How to parse a date string in a foreign language with go time

所以我的问题是:我想这样做:

datestring := "19. april 2018"

parsedDate, err := time.Parse("2. January 2006", datestring)
if err != nil {
    fmt.Println(err)
}

fmt.Println(parsedDate)

该代码段可以完美运行...但是现在我输入的日期字符串不是英语,而是德语。 于是四月愚弄了我。 (德语四月=英语四月)。 使用datestring := "19. Februar 2018"运行此datestring := "19. Februar 2018"失败:

parsing time "12. februar 2018" as "2. January 2006": 
    cannot parse "februar 2018" as "Januar\"

有什么方法可以添加可解析(自然)语言? 或定义我期望的语言。 我在文档中没有找到任何提及。

谢谢!

我相信您要达到的目标可以使用该软件包来完成

https://godoc.org/github.com/goodsign/monday

它允许您使用ParseInLocation函数指定要在德语语言环境中解析日期。

这个问题上可以看到一个很好的例子(和德语)。

一种方法是将原始字符串中的月份从您的语言环境转换为数字或英语语言环境,然后再将其发送到Parse()函数。 它肯定会工作。

这是一个具有多种语言定义的yaml文件-https: //github.com/scrapinghub/dateparser/blob/8e91eb1a6d161a50b1869408c559dc605ef3583f/data/languages.yaml#L116

那是python中的库,所以不适合使用。 但是您可以使用此yaml文件进行转换。 从此答案中获取-https: //stackoverflow.com/a/32482516/801426

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM