我不明白这种行为(或文档): https://play.golang.org/p/vz2UTz-3Yy
在操场上,它会返回预期结果:
t = 2015-06-01 00:00:00 +0000 UTC
t.Location() = UTC
parsed = 2015-06-01 00:00:00 +0000 UTC
parsed.Location() = UTC
在我的Mac上,我得到:
t = 2015-06-01 00:00:00 +0000 +0000
t.Location() =
parsed = 2015-06-01 00:00:00 +0000 +0000
parsed.Location() =
问题是,如果我用
创建日期time.Date(2015, time.June, 01, 00, 0, 0, 0, time.UTC)
2次是不同的,因为一个有位置(“UTC”),另一个没有(或“本地”)。我在这里有点迷失。
由于
答案 0 :(得分:2)
当使用像-0700这样的区域偏移解析时间时,如果偏移对应于当前位置(本地)使用的时区,则Parse在返回的时间内使用该位置和区域。否则,它将时间记录在一个制造的位置,时间固定在给定的区域偏移处。 [time.Parse]
t.Location
(名称)仅在本地偏移量与已解析日期字符串中的偏移量匹配时设置。您可能设置了不同的时区。
因此记录了偏移,但没有查找位置。