2017-09-15 12 views
1

私はUTC時間と秒単位のオフセットを持っており、対応するGo時間値を返す必要があります。UTCの時刻と時刻オフセットを知っているときに、移動時間値のゾーンを設定する方法はありますか?

time.Unix()関数を使用してUTC時間値をインスタンス化するのは簡単です。しかし、ゾーンを設定するには、時間を決定する必要があります。位置。

どのように私は時間を見つけることができますか?UTC時間と時間オフセットを知っているときの位置は?

答えて

2

タイムゾーンデータベースで実際に検索するエントリがないと、時間の実際の場所を知ることができません。使用したい場合はオフセットだけで、あなたはあなたがいる限り、あなたが使用し、出力形式として、全く存在しないゾーン名、またはnoneを指定することを選ぶことができます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 

を使用して固定された場所を作成することができます1つを必要としません。

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

関連する問題