我需要用RFC2616格式化时间戳,这是HTTP的标准。然而,标准规定:
所有HTTP日期/时间戳都必须用格林尼治标准时间(GMT)表示,无一例外。
从一点了解来看,格林尼治标准时间和UTC并不是一回事。Go中是否有适当的方法将时间戳转换为格林尼治标准时间?
发布于 2018-09-03 16:38:15
使用http.TimeFormat布局来格式化headers的时间。此布局假定在UTC位置有一段时间。
s := t.UTC().Format(http.TimeFormat)
如果时间已知在UTC,则可以跳过对UTC()的调用:
s := t.Format(http.TimeFormat)
发布于 2022-06-09 12:38:49
如果我正确阅读,UTC()方法是有问题的,因为如果时区显示为文本(例如格式time.RFC1123),它将以"UTC“结尾。他们的要求是如何使它成为“格林尼治标准时间”。
我认为这是我们所需要的:
gmtTimeLoc := time.FixedZone("GMT", 0)
s := t.In(gmtTimeLoc).Format(http.TimeFormat)
在我的例子中,使用格式time.RFC1123,我得到:
2022年6月09 :01:08格林尼治时间星期六
(在我的推动下,我只创建了一次gmtTimeLoc并重用它)
https://stackoverflow.com/questions/52157392
复制