<p>在标准库中,没有跨平台的方法可以在不创建自己的时区类的情况下创建感知时区。</p>
<p>在Windows上,有<code>win32timezone.utcnow()</code>,但这是pywin32的一部分。我建议使用<a href="http://pytz.sourceforge.net/" rel="noreferrer">pytz library</a>,它有一个不断更新的大多数时区的数据库。</p>
<p>使用本地时区可能非常棘手(请参阅下面的“进一步阅读”链接),因此您可能更希望在整个应用程序中使用UTC,特别是对于计算两个时间点之间的差异等算术操作。</p>
<p>您可以得到当前日期/时间,如下所示:</p>
<pre><code>import pytz
from datetime import datetime
datetime.utcnow().replace(tzinfo=pytz.utc)
</code></pre>
<p>记住<code>datetime.today()</code>和<code>datetime.now()</code>返回<em>本地</em>时间,而不是UTC时间,因此对它们应用<code>.replace(tzinfo=pytz.utc)</code>是不正确的。</p>
<p>另一个好办法是:</p>
<pre><code>datetime.now(pytz.utc)
</code></pre>
<p>有点短,也一样。</p>
<hr/>
<p>在许多情况下,进一步阅读/观察为什么选择UTC:</p>
<ul>
<li><a href="https://pythonhosted.org/pytz/" rel="noreferrer">pytz documentation</a></li>
<li><a href="http://web.archive.org/web/20160803154621/http://www.windward.net/blogs/every-developer-know-time/" rel="noreferrer">What Every Developer Should Know About Time</a>–许多实际用例的开发提示</li>
<li><a href="https://www.youtube.com/watch?v=-5wpm-gesOY" rel="noreferrer">The Problem with Time & Timezones - Computerphile</a>–关于使用时区(视频)的复杂性的有趣、令人大开眼界的解释</li>
</ul>