如何在Python中构建UTC`datetime`对象?

jam*_*her 19 python timezone datetime

我正在使用Python标准库中datetime.datetime.我希望使用UTC时区构造此类的实例.要做到这一点,据我了解,我需要通过作为tzinfo参数传递给datetime构造函数的一些实例tzinfo.

tzinfo课程的文档说:

tzinfo是一个抽象基类,意味着不应该直接实例化此类.您需要派生一个具体的子类,并且(至少)提供您使用的tzinfo方法所需的标准方法的实现datetime.该datetime模块不提供任何具体的子类tzinfo.

现在我很难过.我想做的就是代表"UTC".我应该能够使用大约三个字符来做到这一点,就像这样

import timezones
...
t = datetime(2015, 2, 1, 15, 16, 17, 345, timezones.UTC)
Run Code Online (Sandbox Code Playgroud)

简而言之,我不打算做文档告诉我的事情.那么我的替代方案是什么?

jfs*_*jfs 34

自Python 3.2起,stdlib中有固定偏移时区:

from datetime import datetime, timezone

t = datetime(2015, 2, 1, 15, 16, 17, 345, tzinfo=timezone.utc)
Run Code Online (Sandbox Code Playgroud)

虽然在早期版本上很容易实现utc时区:

datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
Run Code Online (Sandbox Code Playgroud)