Python datetime.now()with timezone

时间:2015-06-08 14:35:53

标签: python python-2.7 datetime timezone

我有一个漂浮的时区(例如4.0) 我想用给定的时区构建datetime

我试过了,

datetime.now(timezone)

但它会抛出

TypeError: tzinfo argument must be None or of a tzinfo subclass, not type 'float'

所以我想知道如何从浮动中获取tzinfo

2 个答案:

答案 0 :(得分:4)

如果您使用的是Python 3.2或更高版本,则需要创建datetime.timezone() object;它需要一个偏移量为datetime.timedelta()

offset = timezone(timedelta(hours=timezone)
datetime.now(offset))

对于早期的Python版本,最简单的方法是使用外部库为您定义时区对象。

dateutil library包括用于创建时区对象的数字偏移的对象:

from dateutil.tz import tzoffset

offset = tzoffset(None, timezone * 3600)  # offset in seconds
datetime.now(offset)

答案 1 :(得分:0)

我建议您使用 pytz ,这可能会更简单 根据描述:

  

此库允许使用Python 2.4或更高版本进行准确的跨平台时区计算。它还解决了夏令时结束时模糊时间的问题,您可以在Python库参考中阅读更多信息

LINK