当前位置:  开发笔记 > 编程语言 > 正文

将UTC字符串转换为golang时间对象

如何解决《将UTC字符串转换为golang时间对象》经验,为你挑选了1个好方法。

我有这个日期时间,或者看起来像它的东西.

2014-11-17 23:02:03 +0000 UTC

我想将其转换为时间对象,但我无法生成任何输出time.Parse:

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

我试过这些布局:

time.RFC3339
0001-01-01 00:00:00 0000 UTC
2016-10-10
time.UnixDate

还有一些 - 没有一个有效.

这就是我打电话的方式parse:

updatedAt, err := time.Parse(time.UnixDate, updatedAtVar)

如何从字符串创建时间对象?



1> icza..:

很可能你使用了错误的布局,并且没有检查返回的错误.

布局必须是此日期/时间,格式为输入时间:

Mon Jan 2 15:04:05 -0700 MST 2006

看到这个工作代码:

layout := "2006-01-02 15:04:05 -0700 MST"
t, err := time.Parse(layout, "2014-11-17 23:02:03 +0000 UTC")
fmt.Println(t, err)

输出(在Go Playground上试试):

2014-11-17 23:02:03 +0000 UTC 

编辑:

在您的问题中,您+在输入时间中包含一个符号(作为区域偏移的一部分),但是您有其他格式的时间错误.

Time.String() 使用以下格式字符串:

"2006-01-02 15:04:05.999999999 -0700 MST"

因此要么使用它来解析时间,要么使用它Time.Format()来生成字符串表示,您可以在其中指定布局,因此您可以使用相同的布局来解析时间字符串.

第二轮:

您将时间字符串包含在URL中.该+标志是在URL编码特殊字符:它指的空间.因此+转换为空格(因此它会从您的时间字符串中消失).使用正确的URL编码!查看net/url包,以及此示例.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有