我有这种格式的日期="星期二,2017年2月28日18:30:32 GMT"
我可以使用time.strptime("Tue, 28 Feb 2017 18:30:32 GMT", "%a, %d %b %Y %H:%M:%S %Z")
将其转换为日期时间对象,但日期时间对象不会跟踪时区。
我希望能够知道时区。我怎样才能做到这一点?非常感谢任何帮助。
答案 0 :(得分:0)
from dateutil import parser
parser.parse("Tue, 28 Feb 2017 18:30:32 GMT")
datetime.datetime(2017,2,28,18,30,32,tzinfo = tzutc())
答案 1 :(得分:0)
这个问题实际上比最初出现的问题更为复杂。我知道时区名称并不是唯一的,并且有很多东西。但是,如果您需要使用它们的数量是可管理的,并且您的输入仅限于该格式,那么这种方法可能对您有好处。
>>> from dateutil.parser import *
>>> tzinfos = {'GMT': 0, 'PST': -50, 'DST': 22 }
>>> aDate = parse("Tue, 28 Feb 2017 18:30:32 GMT", tzinfos=tzinfos)
>>> aDate.tzinfo.tzname(0)
'GMT'
>>> aDate = parse("Tue, 28 Feb 2017 18:30:32 PST", tzinfos=tzinfos)
>>> aDate.tzinfo.tzname(0)
'PST'
>>> aDate = parse("Tue, 28 Feb 2017 18:30:32 DST", tzinfos=tzinfos)
>>> aDate.tzinfo.tzname(0)
'DST'
将替代时区缩写加载到字典中,在此代码中称为tzinfos
然后解析。从日期表达式解析的时区在显示的构造中可用。
正如您所料,其他日期项目可用。
>>> aDate.day
28
>>> aDate.month
2
>>> aDate.year
2017