时区之间的变化

时间:2018-06-06 09:03:45

标签: python datetime

当我尝试使用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。

如何以直接的方式在时区之间进行更改?

1 个答案:

答案 0 :(得分:3)

内置的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