首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将当前时间格式化为:MM:SSZ

如何将当前时间格式化为:MM:SSZ
EN

Stack Overflow用户
提问于 2019-02-03 01:38:58
回答 2查看 4.8K关注 0票数 2

以前从未尝试过Go,目前正在做一个小项目。任务之一是获取当前的系统时间,并以YYYY-MM-DDT00:00:00Z格式表示它。我相信Z意味着时间是以UTC格式表示的,但是当我查看db时,所有的时间戳都是这样的,即2011-11-22T15:22:10Z

那么,我如何在Go中设置这样的格式呢?

Update I能够使用以下代码格式化它

代码语言:javascript
复制
t := time.Now()
fmt.Println(t.Format("2006-01-02T15:04:05Z"))

现在的问题仍然是,Z在这里意味着什么。我应该得到协调世界时的时间吗?

另一个问题是,我用来格式化的值似乎会影响输出--也就是说,当我使用2019-01-02T15:04:05Z时,输出变成了2029-02-02T20:45:11Z,为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-03 01:52:06

Go通过实例提供了非常灵活的解析时间的方法。为此,您必须以您选择的格式编写“参考”时间。参考时间是Mon Jan 2 15:04:05 MST 2006。在我的例子中,我使用这个引用时间来解析Now()

代码语言:javascript
复制
fmt.Println(time.Now().UTC().Format(time.RFC3339))

如果您希望看到以下内容,还可以使用其他引用类型:

代码语言:javascript
复制
RFC822      = "02 Jan 06 15:04 MST"
RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339     = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"

或者你可以使用你想要的参考资料。

票数 5
EN

Stack Overflow用户

发布于 2019-02-03 06:28:52

“如果某一时间为协调世界时( UTC ),则在该时间之后直接添加"Z”,而不存在分隔空间。"Z“是协调世界时零偏移距的区域编号。因此,"09:30 UTC”表示为"09:30Z“或"0930Z”。同样,"14:45:15 UTC“被写为"14:45:15Z”或“144515Z”.16。

来自zone#UTC

代码语言:javascript
复制
// Some valid layouts are invalid time values for time.Parse, due to formats
// such as _ for space padding and Z for zone information.

代码语言:javascript
复制
// Replacing the sign in the format with a Z triggers
// the ISO 8601 behavior of printing Z instead of an
// offset for the UTC zone. Thus:
//  Z0700  Z or ±hhmm
//  Z07:00 Z or ±hh:mm
//  Z07    Z or ±hh

来自包时间/形式的源

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54499195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档