猿问

如何在 Go 中将时间戳格式化为 GMT?

我需要使用 HTTP 日期标准 RFC2616 来格式化时间戳。但是,该标准说:

所有 HTTP 日期/时间戳都必须以格林威治标准时间 (GMT) 表示,无一例外。

从一点点挖掘 GMT 和 UTC 不是一回事。在 Go 中是否有将时间戳转换为 GMT 的正确方法?


jeck猫
浏览 295回答 2
2回答

慕的地6264312

使用http.TimeFormat布局来格式化 HTTP 标头的时间。此布局采用 UTC 位置的时间。 s := t.UTC().Format(http.TimeFormat)如果已知时间为 UTC,则可以跳过对 UTC() 的调用: s := t.Format(http.TimeFormat)

白衣染霜花

如果我没看错,UTC() 方法是有问题的,因为如果时区显示为文本(例如格式 time.RFC1123),它将以“UTC”结尾。请求是如何让它成为“GMT”。我认为这是需要的: gmtTimeLoc := time.FixedZone("GMT", 0)  s := t.In(gmtTimeLoc).Format(http.TimeFormat)在我的例子中,使用格式 time.RFC1123,我得到:2022 年 6 月 9 日星期六 21:01:08 GMT(在我的实现中,我创建了一次 gmtTimeLoc 并重新使用它)
随时随地看视频慕课网APP

相关分类

Go
我要回答