【发布时间】:2022-01-04 16:21:46
【问题描述】:
以下代码
fmt.Println(time.Now().Format("2 Jan 2006 03:04:05PM MST"))
打印
26 Nov 2021 04:00:31PM GMT
如何将时区格式化为Europe/London,即IANA format?预期的输出是
26 Nov 2021 04:00:31PM Europe/London
【问题讨论】:
-
afaik,没有选项可以从
.Format方法中检索它。您可以使用第三方库,例如go-timezone-local,获取您所在时区的 IANA 名称并将其添加到字符串之前。 -
@MrFuppes - 我检查了您的图书馆并感谢您的倡议。但是,它还有很多需要发展的地方,例如我不知道如何使用这个库解析像
"26 Nov 2021 04:00:00 PM Asia/Kolkata"这样的字符串。正确的解析将返回类似26 Nov 2021 10:30:00 AM Europe/London的内容(假设系统的本地时区为Europe/London)。 -
将字符串解析为日期时间是另一回事,这绝不是链接库的意图。你也没有在你的问题中提到解析,所以我没有考虑到它;-)
-
我正在浏览news.ycombinator.com/item?id=10195947,我忍不住笑了,因为作者声称 Go 的日期时间库是最丰富的。到目前为止,无论我做了什么研究,Java 的 Date-Time API 都更丰富、更简单。
-
那篇文章读起来更像是 go time 播客的一个不受欢迎的观点 ^^ 关于 Python 日期时间的 cmets 也有点搞笑。但它大约六岁了,所以作者的观点可能已经改变了。