【发布时间】:2019-03-29 06:21:31
【问题描述】:
给定一个任意时间偏移,如何创建一个可用的time.Location 对象来表示该时间偏移?
以下code 使用偏移量解析时间,但fmt.Println(t.Location()) 随后不返回任何信息:
func main() {
offset := "+1100"
t, err := time.Parse("15:04 GMT-0700","15:06 GMT"+offset)
if err != nil {
fmt.Println("fail", err)
}
fmt.Println(t)
fmt.Println(t.UTC())
fmt.Println(t.Location())
}
游乐场:https://play.golang.org/p/j_E28qJ8Vgy
基本上我有一些带有时间偏移的时间数据,但没有位置数据,我想创建一个time.Location 对象以确保记录GMT 偏移。然后能够输出相对于最终用户实际位置的时间偏移量。
【问题讨论】:
-
当您说“相对于最终用户的实际位置时间偏移”时,您的意思是指他们的本地时间,包括夏令时?如果是这样 - 那是不可能的(用任何语言)。换句话说,如果所有的都是
UTC+2,那么你就无法知道它是属于Africa/Cairo还是Asia/Jersalem还是Europe/Helsinki,还是其他各种地方,可能在UTC+1,也可能不在UTC +2 或 UTC+3 在给定的时间点。