相关疑难解决方法(0)

pytz和astimezone()不能应用于天真的日期时间

我有一个约会,我需要让时区知道.

local_tz = timezone('Asia/Tokyo')
start_date = '2012-09-27'
start_date = datetime.strptime(start_date, "%Y-%m-%d")   
start_date = start_date.astimezone(local_tz)


now_utc = datetime.now(timezone('UTC'))
local_now = now_utc.astimezone(local_tz)
Run Code Online (Sandbox Code Playgroud)

我需要找到这是否属实:

print start_date>local_now
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误.

   start_date = start_date.astimezone(local_tz)
   ValueError: astimezone() cannot be applied to a naive datetime
Run Code Online (Sandbox Code Playgroud)

我将utc转换为tokyo没有任何问题.我需要在东京做好start_date时区感知广告.

谢谢

python timezone datetime pytz

50
推荐指数
2
解决办法
5万
查看次数

pytz奇怪的时区问题

>>> import pytz
>>> pytz.timezone('Asia/Hong_Kong')
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>
Run Code Online (Sandbox Code Playgroud)

7小时37分钟的偏移量?这有点奇怪,有没有人遇到同样的问题?

事实上,我之间的行为有所不同

import pytz
from datetime import datetime
hk = pytz.timezone('Asia/Hong_Kong')

dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
if dt1 > dt2:
   print "Why?"
Run Code Online (Sandbox Code Playgroud)

python pytz

41
推荐指数
3
解决办法
5579
查看次数

Python datetime对象显示错误的时区偏移量

我尝试使用datetime和pytz在python中创建一个datetime对象,显示的偏移是错误的.

import datetime
from pytz import timezone

start = datetime.datetime(2011, 6, 20, 0, 0, 0, 0, timezone('Asia/Kolkata'))
print start
Run Code Online (Sandbox Code Playgroud)

显示的输出是

datetime.datetime(2011, 6, 20, 0, 0, tzinfo=<DstTzInfo 'Asia/Kolkata' HMT+5:53:00 STD>)
Run Code Online (Sandbox Code Playgroud)

请注意,'Asia/Kolkata'是IST,GMT + 5:30,而不是HMT + 5:53.这是一个标准的linux时区,为什么我会弄错,我该如何解决呢?

python datetime pytz

28
推荐指数
2
解决办法
9478
查看次数

dateutil和pytz给出不同的结果

我有一个问题比较输出与dateutilpytz.我正在创建一个有意识的日期时间对象(UTC),然后转换为给定的时区,但我得到了不同的答案.我怀疑dateutil有时会给出错误的结果,因为它考虑到夏令时有问题(至少,我读过它的评论),但我找不到确认或修复该问题.这是代码:

import dateutil

u = dateutil.tz.tzutc()
date1 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u)
# 2010-05-02 11:10:00+00:00

u2 = dateutil.tz.gettz('America/Chicago')
date2 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u2)
# 2010-05-02 11:10:00-05:00


import pytz
u = pytz.timezone('UTC')
date1 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u)

# 2010-05-02 11:10:00+00:00
u2 = pytz.timezone('America/Chicago')
date2 = datetime.datetime(2010, 5, 2, 11, 10, tzinfo=u2)

# 2010-05-02 11:10:00-06:00
Run Code Online (Sandbox Code Playgroud)

那么,这可能是什么问题?

更新:

我刚试过这个:

print u2.normalize(date1.astimezone(u2))
# 2010-05-02 06:10:00-05:00
Run Code Online (Sandbox Code Playgroud)

pytz需要normalize考虑DST吗?

更新2:

好像pytz和dateutil似乎没有给出America/Argentina/San_Luis的答案,但这有效:

import pytz, …
Run Code Online (Sandbox Code Playgroud)

python timezone datetime

16
推荐指数
1
解决办法
5552
查看次数

为什么时区感知日期时间的 tzinfo 不等于时区?

>>> import pytz
>>> tz = pytz.timezone('America/Chicago')
>>> dt_naive = datetime(year=2017, month=6, day=6)
>>> dt_aware = tz.localize(dt_naive)
>>> dt_aware.tzinfo == tz
False
Run Code Online (Sandbox Code Playgroud)

这些不同的原因是什么?

>>> dt_aware.tzinfo
<DstTzInfo 'America/Chicago' CDT-1 day, 19:00:00 DST>
>>> tz
<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD>
Run Code Online (Sandbox Code Playgroud)

python timezone datetime pytz

4
推荐指数
1
解决办法
1333
查看次数

标签 统计

python ×5

datetime ×4

pytz ×4

timezone ×3