2017-09-15 54 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

相關問題