Go 将时间字符串类型解析回时间类型错误

Go 将时间字符串类型解析回时间类型错误,go,Go,错误:解析时间“2014-04-22 23:41:12+0800 CST”:月份超出范围 我通过time.Now().String()获得source,但我无法将其转换回来。这段代码有什么问题?来自文档: Parse解析格式化的字符串并返回它的时间值 代表布局通过显示引用的方式定义格式 时间, 周一1月2日15:04:05-0700 MST 2006将被解释为 值;它作为输入格式的一个示例。相同的 然后将对输入字符串进行解释。预定义的 ANSIC、UnixDate、RFC3339和其他布局描述了

错误:
解析时间“2014-04-22 23:41:12+0800 CST”:月份超出范围


我通过
time.Now().String()
获得
source
,但我无法将其转换回来。这段代码有什么问题?

来自文档:

Parse解析格式化的字符串并返回它的时间值 代表布局通过显示引用的方式定义格式 时间,

周一1月2日15:04:05-0700 MST 2006将被解释为

;它作为输入格式的一个示例。相同的 然后将对输入字符串进行解释。预定义的 ANSIC、UnixDate、RFC3339和其他布局描述了标准和 参考时间的方便表示。更多信息 有关参考时间的格式和定义,请参见 ANSIC和本文件定义的其他常数的文件 包裹

(我的加粗)

所以你想要的是

package main

import "fmt"
import "time"

func main() {
    source := "2014-04-22 23:41:12.518845115 +0800 CST"
    Form := "2014-04-22 23:41:12.518845115 +0800 CST"
    t, err := time.Parse(Form, source)

    if err == nil {
        fmt.Println(t.String())
    } else {
        fmt.Println(err)
    }
}
以输入字符串的格式列出的日期。当我在操场上写这篇文章时需要注意的一点是,它看起来像是
05.000000000
(秒和秒的分数)部分,您需要格式字符串包含的小数点与您要解析的字符串的小数点相同


这里有一个游乐场版本显示了它的工作原理:

谢谢。
表单
的小数点相同。我认为原因在于
-0700 MST
部分。
Form := "2006-01-02 15:04:05.000000000 -0700 MST"