Atm*_*tma 6 python django time timezone datetime
我今天在纽约创建了一个10:30的日期:
ny_tz = timezone('America/New_York')
ny_time = datetime(2014, 9, 4, 10, 30, 2, 294757, tzinfo=ny_tz)
Run Code Online (Sandbox Code Playgroud)
这打印:
2014-09-04 10:30:02.294757-04:56
我试图将此与另一个纽约时间进行比较,该时间偏移时间为4:00,因此比较不起作用.
如何使时区偏移4:00?
Vas*_*eev 11
你应该这样做:
ny_tz = timezone('America/New_York')
ny_time = ny_tz.localize(datetime(2014, 9, 4, 10, 30, 2, 294757))
Run Code Online (Sandbox Code Playgroud)
这样可以得到正确的结果:
>>> print ny_tz.localize(datetime(2014, 9, 4, 10, 30, 2, 294757))
2014-09-04 10:30:02.294757-04:00
Run Code Online (Sandbox Code Playgroud)
相关pytz
文档部分:http://pytz.sourceforge.net/#localized-times-and-date-arithmetic
在您的情况下发生的情况是时区被盲目地附加到日期时间对象,而不知道它的年,月等.因为日期未知,并且无法确定当前的立法时间,DST是否应该在效果等等,假设你只想要纽约的地理时间.
结果可能因年份而异.例如,1918年在美国引入了夏令时,因此1917年和1918年同一天的结果有所不同:
>>> print ny_tz.localize(datetime(1917, 9, 4, 10, 30, 2, 294757))
1917-09-04 10:30:02.294757-05:00
>>> print ny_tz.localize(datetime(1918, 9, 4, 10, 30, 2, 294757))
1918-09-04 10:30:02.294757-04:00
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
909 次 |
最近记录: |