擅长:python、mysql、java
<p>至少有两个问题:</p>
<ol>
<li>不应直接将具有非固定UTC偏移量(如<code>"US/Pacific"</code>)的时区作为tzinfo参数传递。你应该<a href="http://pytz.sourceforge.net/" rel="noreferrer">use ^{<cd2>} method</a>代替</li>
<li><code>.strftime('%s')</code>是不可移植的,<a href="http://bugs.python.org/issue12750" rel="noreferrer">it ignores tzinfo</a>,它总是使用本地时区。改用<code>datetime.timestamp()</code>或<a href="https://stackoverflow.com/a/8778548/4279">its analogs on older Python versions</a>。</li>
</ol>
<p>要使给定时区中的日期时间具有时区意识,请执行以下操作:</p>
<pre><code>#!/usr/bin/env python
from datetime import datetime
import pytz # $ pip install pytz
tz = pytz.timezone("US/Pacific")
aware = tz.localize(datetime(2011, 2, 11, 20), is_dst=None)
</code></pre>
<p>要获取POSIX时间戳:</p>
<pre><code>timestamp = (aware - datetime(1970, 1, 1, tzinfo=pytz.utc)).total_seconds()
</code></pre>
<p>(在Python 2.6上,<a href="https://stackoverflow.com/a/8778548/4279">see ^{<cd5>} function on how to emulate ^{<cd6>} method</a>)。</p>