擅长:python、mysql、java
<p>我相信您的方法没有保存时间元组的原因是<code>is_dst</code>值被更改了。<code>time.mktime</code>尊重<code>struct</code>中的<code>is_dst</code>,但是<code>dt.timetuple</code>将<code>is_dst</code>改为-1。在</p>
<p>避免此错误的一种方法是将时间元组解释为表示UTC时间。这可能不是严格正确的,但对你的目的来说可能已经足够好了。在</p>
<pre><code>In [1]: import datetime as dt
In [2]: import time
In [3]: import calendar
In [17]: time_tuple=(1970, 1, 1, 0, 0, 0, 3, 1, 1)
In [18]: timestamp=calendar.timegm(time_tuple)
In [19]: timestamp
Out[19]: 0
In [20]: date=dt.datetime.utcfromtimestamp(timestamp)
In [21]: date
Out[21]: datetime.datetime(1970, 1, 1, 0, 0)
In [22]: tuple(date.timetuple())
Out[22]: (1970, 1, 1, 0, 0, 0, 3, 1, -1)
</code></pre>
<p>下面是一个示例,说明您发布的方法可能无法保存时间元组。假设远程服务器所在的区域设置为_dst=1,而您所在的区域设置中为\u dst=0:</p>
^{pr2}$