Django - 'datetime.date'对象没有'tzinfo'属性

20

以下是我用来将日期时间转换为带时区信息的代码。我尝试使用了Django文档中推荐的方法。

tradeDay = day.trade_date + timedelta(hours=6)
td1 = pytz.timezone("Europe/London").localize(tradeDay, is_dst=None)
tradeDay = td1.astimezone(pytz.utc)

我遇到了tz_info错误。我该如何给datetime添加tz_info属性?

在settings.py中设置USE_TZ = True。

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
24

看起来day.trade_date实际上是一个datetime.date对象,而不是datetime.datetime,所以尝试本地化它会导致错误。

请先使用combine()day.trade_date转换为datetime.datetime,然后添加6小时并进行本地化。

# Convert to a datetime first
tradeDate = datetime.combine(day.trade_date, datetime.min.time())

# Now the date can be localized
tradeDay = tradeDate + timedelta(hours=6)
td1 = pytz.timezone("Europe/London").localize(tradeDay, is_dst=None)
tradeDay = td1.astimezone(pytz.utc)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,