擅长:python、mysql、java
<p>接受@xorsyst的回答现在给了我错误的结果(2018年3月21日,欧洲/沃索区):</p>
<pre><code>2018-03-21 19:02:10+00:59
</code></pre>
<p>(应为:2018-03-21 19:02:10+01:00)</p>
<p>@kwoldt给出的答案更好,但需要一个适当的偏移量参数。他的例子给出了糟糕的结果:</p>
^{pr2}$
<p>(应为:2018-03-21T19:06:54.024151+01:00)</p>
<p>我找到了一个对我有用的解决方案:</p>
<pre class="lang-python prettyprint-override"><code>import datetime
import time
def local_datetime_isoformat():
ts = time.time()
local_dt = datetime.datetime.fromtimestamp(ts)
struct_tm = time.localtime(ts)
offset = time.altzone if struct_tm.tm_isdst else time.timezone
local_iso = local_dt.isoformat(' ')
if offset:
sign = '+' if offset < 0 else '-'
offset_hours = abs(offset) // 3600
offset_minutes = (abs(offset) % 3600) // 60
local_iso += '{0}{1:0<2}:{2:0<2}'.format(sign, offset_hours, offset_minutes)
else:
local_iso += 'Z'
return local_iso
>>> print local_datetime_isoformat()
2018-03-21 19:04:03.631014+01:00
</code></pre>