【问题标题】:Change between timezones时区之间的变化
【发布时间】:2018-06-06 09:03:45
【问题描述】:

当我尝试使用datetime 模块时

In [31]: datetime.now()
Out[31]: datetime.datetime(2018, 6, 6, 8, 59, 35, 49991)
In [32]: str(datetime.now())
Out[32]: '2018-06-06 08:59:45.633486'

我打算更改为本地时间,但在几十个时区模块和第三方包中丢失了 pytz。

如何直接在时区之间进行更改?

【问题讨论】:

标签: python datetime


【解决方案1】:

内置的datetime 模块为您提供了处理时区的基本类和数据结构,但它不包含实际的时区数据。这是因为此类数据偶尔会更新和修订,您不希望将其硬编码到 Python 发行版中。这就是 pytz 模块的用武之地,它可以单独安装并保持最新。

在实践中,您主要处理datetime.datetimepytz.timezone

from datetime import datetime
import pytz

datetime.now(pytz.timezone('Asia/Tokyo'))

如果您只使用 UTC,那是 Python 唯一内置的时区:

from datetime import datetime, timezone

datetime.now(timezone.utc)

您应该仔细阅读 pytz 使用说明,何时使用 datetime.astimezonelocalize 以及何时将时区作为参数传递给 datetime 函数:http://pytz.sourceforge.net/#example-usage

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2014-03-17
    相关资源
    最近更新 更多