2017-09-05 16 views
-1

我不知道如何使用datetime.tzinfo模块。我必须将UTC的日期时间数据转换为本地时区,如果我检索'+2'(表示gmt + 2),我该如何将其转换为tzinfo对象?如何在Python中使用datetime.tzinfo?

此外,是否可以将UTC自动转换为本地时区并自动应用夏令时?如何设置在dst期间自动减去一小时只有

回答

1

Python并没有真正实现好时区。根据documentation,tzinfo只是一个抽象类,意图由用户来实现。

我建议第三方pytz模块处理时区。

0

您可以使用tzoffset来设置您检索的时区偏移量。例如,如果你得到“+2”,解析字符串,以便n = 2

from dateutil.tz import tzoffset 

utc_dt = your_datetime.replace(tzinfo=tzoffset("UTC+0",0)) 
local_dt = utc_dt.astimezone(tzoffset("UTC+{}".format(n), n*60*60)) 

变量utc_dt使用只是为了确保你原来的日期时间有一个正确的UTC时区的属性,否则将无法工作。然后,您可以设置目标当地时间的偏移量,以秒为单位。

我不确定是否可以应用DST知道UTC/GMT偏移量,因为某个时区的某些国家可能不会应用它。如果您具有“欧洲/维也纳”的确切本地化,则可以使用pytz库和datetime.dst()方法来确定是否减去一小时。

+0

非常感谢。我会试试看。 –