在Python中识别和转换时区
在我的文件中,我有ISO 8061格式的日期列和时区信息,下面是示例输入在Python中识别和转换时区,python,date,datetime,python-3.x,python-dateutil,Python,Date,Datetime,Python 3.x,Python Dateutil,在我的文件中,我有ISO 8061格式的日期列和时区信息,下面是示例输入 0001-01-01T00:00:00-05:00 2009-01-29T07:00:00-05:00 2009-01-29T13:00:00-05:00 2009-01-29T18:55:00-05:00 2010-01-22T12:00:00-05:00 2010-07-20T00:25:00-04:00 2010-08-14T00:30:00-04:00 2011-06-19T08:25:00.41683-04:00
0001-01-01T00:00:00-05:00
2009-01-29T07:00:00-05:00
2009-01-29T13:00:00-05:00
2009-01-29T18:55:00-05:00
2010-01-22T12:00:00-05:00
2010-07-20T00:25:00-04:00
2010-08-14T00:30:00-04:00
2011-06-19T08:25:00.41683-04:00
所以格式是YYYY-MM-DDTHH:MM:SS[f]-AB:CD
我想知道如何将给定数据格式化为RFC 2445 iCalendar规范[DTSTART]要求的格式,例如:
19970714T133000 ;Local time
19970714T173000Z ;UTC time
TZID=US-Eastern:19970714T133000 ;Local time and time
我目前有以下代码用于解析
>>> import dateutil.parser
>>> import dateutil
>>> import datetime
>>> dateutil.parser.parse('2009-01-29T07:00:00-05:00')
datetime.datetime(2009, 1, 29, 7, 0, tzinfo=tzoffset(None, -18000))
我想知道如何识别时区['-04:00','-05:00'],以及如何将它们转换为UTC
多谢各位 我有点困惑。dateutil已经为您解析了时区信息。tzinfo=tzoffset(无,-18000)。一小时有3600秒-5点是-18000s@Leonardo.Z所以如果我只是从原始日期时间减去5小时,我会得到UTC日期时间?不,你不应该手动减去
dt=dateutil.parser.parse('2009-01-29T07:00:00-05:00')
,datatime对象有一个方法来进行时区转换:dt.astimezone(pytz.utc)
@Leonardo.Z谢谢Leo:)希望你有一个轻松的一天:)Leonardo是对的。此外,您还需要5小时才能返回UTC。偏移表示时间比UTC晚5小时。还要认识到,仅仅因为你有-5或-4并不意味着你可以知道这是美国东部时间。