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

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

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

Go
jeck猫 2023-03-29 16:09:18
我需要使用 HTTP 日期标准 RFC2616 来格式化时间戳。但是,该标准说:所有 HTTP 日期/时间戳都必须以格林威治标准时间 (GMT) 表示,无一例外。从一点点挖掘 GMT 和 UTC 不是一回事。在 Go 中是否有将时间戳转换为 GMT 的正确方法?
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

使用http.TimeFormat布局来格式化 HTTP 标头的时间。此布局采用 UTC 位置的时间。

 s := t.UTC().Format(http.TimeFormat)

如果已知时间为 UTC,则可以跳过对 UTC() 的调用:

 s := t.Format(http.TimeFormat)


查看完整回答
反对 回复 2023-03-29
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

如果我没看错,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 并重新使用它)


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

添加回答

举报

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