登录
首页 >  Golang >  Go问答

解决Golang时间解析困扰

来源:stackoverflow

时间:2024-03-05 15:57:24 163浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《解决Golang时间解析困扰》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

我正在执行下面的代码来解析时间

var time_format = "2006-01-02t15:04:05.000+0700"
var s = "2018-08-23t14:10:31.692+0700"
p, _ := time.parse(time_format, s)
fmt.println(p.string())

上述程序的输出如下。

2018-08-23 14:10:31.692 +0000 utc

这是与 utc 相同的时间,而我正在解析比 utc 早 +0700 的时间,因此预期结果应该是

2018-08-23 7:10:31.692 +0000 UTC

谁能告诉我这里出了什么问题吗?


解决方案


这是因为你的格式字符串不正确。时区指示必须为 -0700(而不是 +0700)。 time.Parse()

布局通过显示参考时间的定义方式来定义格式

mon jan 2 15:04:05 -0700 mst 2006

有了这个改变,它就可以工作了:

var format = "2006-01-02t15:04:05.000-0700"

var s = "2018-08-23t14:10:31.692+0700"
p, err := time.parse(format, s)

fmt.println(p.string(), err)

这将输出(在 Go Playground 上尝试):

2018-08-23 14:10:31.692 +0700 +0700 

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《解决Golang时间解析困扰》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>