为了账号安全,请及时绑定邮箱和手机立即绑定

如何将当前时间格式化为 YYYY-MM-DDTHH:MM:SSZ

如何将当前时间格式化为 YYYY-MM-DDTHH:MM:SSZ

Go
心有法竹 2023-06-05 17:09:21
以前从未尝试过 Go,目前正在做一个小项目。其中一项任务是获取当前系统时间并以YYYY-MM-DDT00:00:00Z格式表示。我相信这Z意味着时间以 UTC 格式表示,但是当我查看数据库时,所有时间戳都是这样的,即2011-11-22T15:22:10Z。那么我怎样才能在 Go 中像这样格式化呢?更新 我能够使用以下代码对其进行格式化t := time.Now() fmt.Println(t.Format("2006-01-02T15:04:05Z"))现在问题仍然存在,Z这里意味着什么。我应该得到 UTC 时间吗?另一个问题,看起来我用来格式化的值会影响输出,即,当我使用输出时,2019-01-02T15:04:05Z输出变成了2029-02-02T20:45:11Z,为什么?
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

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


fmt.Println(time.Now().UTC().Format(time.RFC3339))

如果您想查看,还有其他引用类型:


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"

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


查看完整回答
反对 回复 2023-06-05
?
手掌心

TA贡献1942条经验 获得超3个赞

“如果时间采用协调世界时 (UTC),则在时间后直接添加一个“Z”,无需分隔空格。“Z”是零 UTC 偏移量的时区指示符。因此表示为“09:30 UTC”为“09:30Z”或“0930Z”。同样,“14:45:15 UTC”写为“14:45:15Z”或“144515Z”。[16]”

// Some valid layouts are invalid time values for time.Parse, due to formats

// such as _ for space padding and Z for zone information.


// 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


查看完整回答
反对 回复 2023-06-05
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信