我想将以下字符串解析为go中的日期:
"This item will be released on March 9, 2014."
Run Code Online (Sandbox Code Playgroud)
我跟着这个,然后上来了:
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
}
Run Code Online (Sandbox Code Playgroud)
这就像英国字符串的魅力.
我的问题:我想解析德语字符串.喜欢:
"Dieser Artikel wird am 9. März 2014 erscheinen."
Run Code Online (Sandbox Code Playgroud)
我知道,我可以通过正则表达式匹配日,月和年,然后解析它.但有没有可能告诉time.Parse使用一组不同的常量?
目前没有i18n支持时间包.在等待这种情况发生时,您可以尝试使用包装程序包,例如:
正如monday文件所述:
星期一不是标准时间套餐的替代品.这是一种临时解决方案,在国际化功能尚未准备就绪时使用.
这就是为什么星期一不会创建任何额外的解析算法,布局标识符.它只是time.Format和time.ParseInLocation的包装器,并使用所有相同的布局ID,常量等.
以下是您使用的示例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)
}
Run Code Online (Sandbox Code Playgroud)
输出:
2014-03-09 00:00:00 +0100 CET