<p><code>timezon.make_aware(d, TZ)</code>相当于<code>TZ.localize(d, is_dst=None)</code>,它会在不明确的时间引起错误:<code>2014-10-26 01:45:00</code>在欧洲/莫斯科时区发生两次:</p>
<pre><code># Europe/Moscow UTC timestamp
2014-10-26 00:45:00 MSK+0400; 2014-10-25 20:45:00 UTC+0000; 1414269900
2014-10-26 01:00:00 MSK+0400; 2014-10-25 21:00:00 UTC+0000; 1414270800
2014-10-26 01:15:00 MSK+0400; 2014-10-25 21:15:00 UTC+0000; 1414271700
2014-10-26 01:30:00 MSK+0400; 2014-10-25 21:30:00 UTC+0000; 1414272600
2014-10-26 01:45:00 MSK+0400; 2014-10-25 21:45:00 UTC+0000; 1414273500
2014-10-26 01:15:00 MSK+0300; 2014-10-25 22:15:00 UTC+0000; 1414275300
2014-10-26 01:30:00 MSK+0300; 2014-10-25 22:30:00 UTC+0000; 1414276200
2014-10-26 01:45:00 MSK+0300; 2014-10-25 22:45:00 UTC+0000; 1414277100
2014-10-26 02:00:00 MSK+0300; 2014-10-25 23:00:00 UTC+0000; 1414278000
</code></pre>
<p>注意:utc偏移量在凌晨2点(<a href="http://graph.document.kremlin.ru/page.aspx?1;3644925" rel="nofollow noreferrer">Федеральный закон от 21 июля 2014 г. N 248-ФЗ</a>)从<code>+0400</code>更改为<code>+0300</code>。在</p>
<p>为了避免异常,您可以调用<code>TZ.localize(d)</code>(注意:no <code>is_dst=None</code>),它对现有的非歧义时间正常,但对于不存在或不明确的时间,可能会失败(返回错误的答案)。在</p>
<p>如果<a href="https://bugs.launchpad.net/pytz/+bug/1378150" rel="nofollow noreferrer">pytz Bug #1378150: Enhance support for end-of-DST-like ambiguous time</a>是固定的,那么可以使用<code>TZ.localize(d, is_dst=True)</code>,<code>TZ.localize(d, is_dst=False)</code>来获得相应的转换前后的时间。在</p>
<p>如果错误没有修复,您可以使用我的答案从<a href="https://stackoverflow.com/a/26221183/4279">Parsing of Ordered Timestamps in Local Time (to UTC) While Observing Daylight Saving Time</a>获得转换后的时间:</p>
^{pr2}$