2017-09-15 30 views

回答

2

如果没有在时区数据库中查找的实际条目,则无法获知该时间的真实位置。如果你想只用偏移工作,你可以创建一个使用一个固定的位置time.FixedZone

edt := time.FixedZone("EDT", -60*60*4) 
t, _ := time.ParseInLocation("02 Jan 06 15:04", "15 Sep 17 14:55", edt) 
fmt.Println(t) 

// 2017-09-15 14:55:00 -0400 EDT 

您可以选择手工指定一个不存在的区域名称,或根本没有,只要输出格式使用不需要一个。

minus4 := time.FixedZone("", -60*60*4) 
t, _ = time.ParseInLocation("02 Jan 06 15:04", "15 Sep 17 14:55", minus4) 
fmt.Println(t.Format(time.RFC3339)) 

// 2017-09-15T14:55:00-04:00 
+0

好的建议。问题是我不知道时区名称。 – chmike

+0

具体来说,真正的时区条目包含夏令时/夏令时的遵守和时间表等详细信息,这不包括在简单的UTC时差中。 – Adrian

+0

@chmike:如果你不知道实际的时区名称,那么你只能猜测,或完全抛弃它。我只用“EDT”作为例子,它不是真正的时区。 – JimB

相关问题