擅长:python、mysql、java
<p>原始日期时间对象上的<code>datetime.timestamp()</code>在内部调用<code>mktime()</code>,即输入被解释为本地时间。本地时间定义可能因系统而异。在</p>
<p>如果本地时区过去有不同的utc偏移量,并且没有使用历史时区数据库,则C<code>mktime()</code>可能返回错误的结果。<code>python</code>无法在Windows上访问{a1}。在</p>
<p>如果应用程序使用不同的tzdata版本,可能会得到不同的结果。如果使用不同的<code>mktime()</code>实现(其他都相同),那么对于不明确的时间(例如,在DST转换期间),也可能得到不同的结果。在</p>
<p>要在不同的系统上获得相同的结果,<a href="http://pytz.sourceforge.net" rel="nofollow">use ^{<cd6>} module</a>(不同系统上的同一版本使用与Python包zoneinfo捆绑在一起):</p>
<pre><code>#!/usr/bin/env python3
from datetime import datetime
import pytz # $ pip install pytz
tz = pytz.timezone('America/New_York')
for tt in [(2006, 10, 30),
(2006, 10, 31),
(2006, 11, 1),
(2006, 11, 2),
(2006, 11, 3),
(2006, 11, 4),
(2006, 11, 5)]:
dt = datetime(*tt)
ts = tz.localize(dt, is_dst=None).timestamp()
print("{dt:%Y-%m-%d},{ts:.0f}".format(**vars()))
</code></pre>
<h3>输出(<code>pytz.__version__ == 2014.10</code>)</h3>
^{pr2}$