如何将此代码从Python转换为Go?
>>> 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
包中导出。
Go中的time.Now().Local()
是Python中gmtime.gmtime()
的真正替代品吗?
答案 0 :(得分:2)
由于Local()
返回当地时间,因此您无需致电time.Now()
。当我尝试在我的机器上运行代码时,我得到了正确的结果。看起来你正在运行它的时区是UTC。 (您可以通过打印time.Now().Zone()
的结果来查看时区。
gmtime
返回UTC时间。在Go中,您可以通过在时间值上调用In(time.UTC)
将时间转换为UTC。 (我不是Python专家,我不知道为什么gmtime()
的时区被报告为当地时区(我在我的机器上重现了这一点)。)