【问题标题】:How to get UTC time given timezone?如何获取给定时区的UTC时间?
【发布时间】:2011-09-25 14:00:02
【问题描述】:

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

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

现在,这段代码让我有时间在英国格林威治。我知道我的时间偏移量为 -8 (GMT -8)。如何获取特定时区的 UTC 时间? (使用 Python 库,不将小时转换为整数,- 8,然后将其转换回来)

【问题讨论】:

  • 您的短语“美国的UTC时间”有点奇怪。 UTC 时间是 UTC 时间。我认为您的意思是“我怎样才能获得美国特定时区本地的 UTC 时间。

标签: python time utc


【解决方案1】:

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

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

来自 python 时间模块: “与 gmtime() 类似,但转换为本地时间。如果未提供 secs 或 None,则使用 time() 返回的当前时间。当 DST 适用于给定时间时,dst 标志设置为 1。”

查看 DST 是否适用:

time.daylight

【讨论】:

    【解决方案2】:

    试试日期时间模块:

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

    顺便说一句,UTC 没有时区,它是世界协调时间,各地都一样。

    【讨论】:

      【解决方案3】:

      支持时区的详细程度取决于应用程序。世界各地的时间调整规则政治性多于理性,没有适用于所有应用的标准。

      为此目的有一个有用的第三方模块:http://pytz.sourceforge.net/

      【讨论】:

        猜你喜欢
        • 2010-09-27
        • 2017-08-05
        • 2014-03-03
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        • 2018-08-07
        • 2022-01-19
        相关资源
        最近更新 更多