将字符串转换为时间并在golang中解析

将字符串转换为时间并在golang中解析,go,Go,我正在从文件中读取时间戳,并将值分配给t: t:=“2016-11-02 19:23:05.503705739+0000 UTC” 当我尝试分析字符串时: time,err:=time.Parse(“2016-11-02 19:18:57.149197306+0000 UTC”,t) 结果是: 0001-01-01 00:00:00+0000 UTC 但我预期的结果是: “2016-11-02 19:18:57.14919730+0000 UTC” 请告知。您没有正确地将布局参数提供给解析。您应

我正在从文件中读取时间戳,并将值分配给
t

t:=“2016-11-02 19:23:05.503705739+0000 UTC”

当我尝试分析字符串时:

time,err:=time.Parse(“2016-11-02 19:18:57.149197306+0000 UTC”,t)

结果是:

0001-01-01 00:00:00+0000 UTC

但我预期的结果是:

“2016-11-02 19:18:57.14919730+0000 UTC”


请告知。

您没有正确地将
布局
参数提供给
解析
。您应该使用给定格式的
Mon Jan 2 15:04:05 MST 2006
(这是一个神奇的值,您可以使用您想要的格式创建一个字符串,但带有该日期),因此在您的情况下,它将是
2006-01-02 15:04:05.000000000+0000 UTC
加上我不知道的MST顶部的偏移量。

err
nil?首先要检查
err==nil
,如果为false,则检查
err
的内容。err是解析时间“2016-11-02 19:35:35.173585795+0000 UTC”:超出范围的月份请参见:,和,和,等等……我已经阅读了@JimB。。。下面的evans解释有助于澄清布局字符串是如何构造的这就是我试图理解的关于格式字符串的内容。让我试试看,我会回来的shortly@Mike听起来不错。时间包的这一方面有点奇怪,因为一旦你习惯了它,就很容易使用它。我相信你的偏移量应该是
-7
顺便说一句。我仍然得到一个错误,我在这里上传了代码:@Mike,这是因为你的
布局
参数仍然有2016年的日期,而它应该是基于2006年1月2日的那个纪元。下面是一个经过修改的示例,它很有效@Mike对于这一点,你的目标是查看输入时间的格式,然后取那个纪元(1/2/2006),并用输入时间的格式表示它。