首页 > 解决方案 > 如何将当前时间格式化为 YYYY-MM-DDTHH:MM:SSZ

问题描述

以前从未尝试过 Go,目前正在做一个小项目。其中一项任务是获取当前系统时间并以YYYY-MM-DDT00:00:00Z格式表示。我相信这Z意味着时间以 UTC 格式表示,但是当我查看 db 时,所有时间戳都是这样的,即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,为什么?

标签: godatetime-format

解决方案


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

fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05Z"))

推荐阅读