我正在尝试解析电子邮件标题中收到的日期。最近,我被这个Thu, 7 Aug 2014 14:03:05 +0200 (Mitteleuropäische Sommerzeit)卡住了。我应该使用哪种布局? Mon, 02 Jan 2006 15:04:05 -0700 (MST)不能解决问题。

我也尝试了以下解决方法,但仍然无法正常工作。我不确定为什么Mitt ...没有被取代。

if strings.Contains(d, "Mitteleuropäische Sommerzeit") {
    d = strings.Replace(d, "Mitteleuropäische Sommerzeit", "CEST", 1)
}

最佳答案

Mitteleuropäische Sommerzeit包确实不能识别time部分。但是,当您用CEST替换它时,它可以完美地工作:

var d = "Thu, 7 Aug 2014 14:03:05 +0200 (Mitteleuropäische Sommerzeit)"
_, err := time.Parse("Mon, _2 Jan 2006 15:04:05 -0700 (MST)", d)
if err != nil {
    fmt.Println(err) // There is indeed an error
}

d = strings.Replace(d, "Mitteleuropäische Sommerzeit", "CEST", 1)
t, err := time.Parse("Mon, _2 Jan 2006 15:04:05 -0700 (MST)", d)
if err != nil {
    fmt.Println(err) // No error this time
}
fmt.Println(t) // 2014-08-07 14:03:05 +0200 CEST

playground上。

不要忘记在布局中写_2而不是2,这样也可以解析包含两个数字的日子。

09-26 05:31