TimeZone字符串格式

时间:2016-12-24 20:22:32

标签: go

如何将此代码从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()的真正替代品吗?

1 个答案:

答案 0 :(得分:2)

由于Local()返回当地时间,因此您无需致电time.Now()。当我尝试在我的机器上运行代码时,我得到了正确的结果。看起来你正在运行它的时区是UTC。 (您可以通过打印time.Now().Zone()的结果来查看时区。

Python中的

gmtime返回UTC时间。在Go中,您可以通过在时间值上调用In(time.UTC)将时间转换为UTC。 (我不是Python专家,我不知道为什么gmtime()的时区被报告为当地时区(我在我的机器上重现了这一点)。)