如何根据时区获取UTC时间?

2 投票
3 回答
8516 浏览
提问于 2025-04-16 20:33

我在美国,想要获取不受夏令时影响的UTC时间,用于一段代码:

localtime = strftime("%m%d%y%H%M", gmtime())

现在这段代码给我的时间是英国格林威治的时间。我知道我所在的时区是-8(GMT -8)。我该如何获取特定时区的UTC时间呢?(使用Python库,而不是简单地把小时数转换成整数-8,然后再转换回来)

3 个回答

1

支持时区的细节程度完全取决于你的应用程序。全球各地的时间调整规则更多是出于政治原因,而不是理性考虑,所以没有一个标准适合所有的应用。

为了这个目的,有一个很有用的第三方模块:http://pytz.sourceforge.net/

3

只需使用localtime()函数,而不是gmtime()函数:

localtime = time.strftime("%m%d%y%H%M", time.localtime())

来自Python的时间模块: “和gmtime()类似,但它转换为当地时间。如果没有提供secs参数或者它是None,那么就会使用time()返回的当前时间。当给定的时间适用夏令时(DST)时,dst标志会被设置为1。”

要查看是否适用夏令时:

time.daylight
9

试试使用 datetime 模块:

datetime.datetime.utcnow() + datetime.timedelta(hours=-8)

顺便说一下,UTC 没有时区,它是协调世界时间,全球都是一样的。

撰写回答