2016-12-24 263 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包中導出。

time.Now().Local()在Python中真正代替gmtime.gmtime()

回答

2

您不需要撥打Local()那裏,因爲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」。 –