擅长:python、mysql、java
<p>我猜您前端的<code>datetime</code>是UTC格式的。执行替换操作实际上不会转换日期时间。它使用data/hour/等,只使用一个新的时区。在</p>
<p>当您调用<code>datetime.today()</code>时,您将创建一个不带任何时区信息的原始datetime。当您对此进行<code>replace</code>操作时,它实际上也没有进行转换,它只是假设您给它的日期已经在您提供的时区中,与您在服务器时间上所做的替换相同。在</p>
<p>要将datetime转换为另一个时区,您需要使用<a href="https://docs.python.org/2/library/datetime.html#datetime.datetime.astimezone" rel="nofollow">^{<cd4>}</a>。如果来自服务器的datetime也是<em>天真的</em>,并且没有指定时区,<code>astimezone</code>将出错。来解决这个问题。首先添加<code>UTC</code>的时区。在</p>
<pre><code>time_from_frontend = time_from_frontend.replace(tzinfo=pytz.timezone('UTC'))
converted_server_time = time_from_frontend.astimezone(my_timezone)
</code></pre>