2016-12-24 6 views
1

このコードをPythonからGoに変換するにはどうすればよいですか?TimeZone文字列書式

>>> from time import gmtime 
>>> from time import strftime 
>>> strftime("%z", gmtime()) 
'-0800' 

私が試した:

package main 

import (
    "fmt" 
    "time" 
) 

func main() { 
    fmt.Println(time.Now().Local().Format("-0700")) 
} 

しかし、それは明らかに働いていない:

+0000 

私は、一般的にはやや混乱していた時間の書式設定の一部についてのconstシンボル(例えばstdNumTZ)ので、 timeパッケージからエクスポートされません。

はPythonのgmtime.gmtime()の代わりになりますか?

答えて

2

に電話する必要はありません。time.Now()は現地時間を返します。マシン上でコードを実行しようとすると、正しい結果が得られます。これは、あなたがこれを実行しているタイムゾーンがUTCのようです。 (time.Now().Zone()の結果を印刷すると、タイムゾーンが表示されます)。

gmtime(Pythonで)はUTC時刻を返します。 Goでは、時間値にIn(time.UTC)を呼び出すことによって、時刻をUTCに変換できます。 (私はPythonのエキスパートではなく、なぜgmtime()のタイムゾーンがローカルタイムゾーンとして報告されているのか分かりません。)

+0

私はGo Playgroundで実行しています:https ://play.golang.org/p/Ij-TuuRX_K – Laurent

+1

タイムゾーンはUTCなので、「+0000」が得られるのはそのためです。 –