我有一个Python + Django应用程序,它以UTC格式存储所有内容,并在设置中有<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
<script>var $j = jQuery.noConflict(true);</script>
<script>
$(document).ready(function(){
console.log($().jquery); // This prints v1.11.0
console.log($j().jquery); // This prints v1.8.3
});
和TIME_ZONE = 'UTC'
。转换POSIX时间戳时,我从USE_TZ = True
两种风格获得相同的输出:
fromtimestamp
为什么会这样?
答案 0 :(得分:1)
如果fromtimestamp()
和ucfromtimestamp()
返回相同的值,则表示本地时区在给定时间具有零utc偏移量。 Django设置您的本地时区(TZ
envvar),以反映您的案例中的TIME_ZONE
设置,并且(显然)UTC中的utc偏移量为零。
获取对应于给定POSIX时间戳的时区感知日期时间对象:
from datetime import datetime, timedelta
import pytz
dt = datetime(1970, 1, 1, tzinfo=pytz.utc) + timedelta(seconds=start_seconds)
转换Unix时间:
dt = datetime.fromtimestamp(start_seconds, pytz.utc)
边缘情况下的值可能不同。
答案 1 :(得分:0)
运行代码会给我预期的结果,这些结果是与各自时区偏移的天真日期时间。根据epochconverter,您提供的时间戳是2016-04-27 23:00:00 UTC
In[23]: import datetime
In[24]: start_seconds = 1461798000000 / 1000.0
In[25]: start = datetime.datetime.utcfromtimestamp(start_seconds)
In[26]: print('With utc: %s' % start)
With utc: 2016-04-27 23:00:00 # Correct UTC time
In[27]: start2 = datetime.datetime.fromtimestamp(start_seconds)
In[28]: print('Without utc: %s' % start2)
Without utc: 2016-04-27 19:00:00 # Correct EDT time (my local timezone)