不负相思意
我建议使用Python-dateutil..到目前为止,它的解析器已经能够解析我抛出的每一种日期格式。>>> from dateutil import parser>>> parser.parse("Tue Jun 22 07:46:22 EST 2010")datetime.datetime(2010, 6, 22, 7, 46, 22, tzinfo=tzlocal())>>> parser.parse("Fri, 11 Nov 2011 03:18:09 -0400")datetime.datetime(2011, 11, 11, 3, 18, 9, tzinfo=tzoffset(None, -14400))>>> parser.parse("Sun")datetime.datetime(2011, 12, 18, 0, 0)>>> parser.parse("10-11-08")datetime.datetime(2008, 10, 11, 0, 0)诸若此类。不处理strptime()无稽之谈.。只要在它上扔个约会,它就会做正确的事情。更新:哎呀。我漏掉了你之前提到的你用过的问题dateutil对此很抱歉。但是,我希望这个答案对于那些遇到这个问题的人来说还是有用的,当他们有日期解析问题的时候,并且看到了这个模块的效用。
慕运维8079593
您的时间字符串类似于RFC 2822(电子邮件中的日期格式,http标头)..您可以只使用stdlib解析它:>>> from email.utils import parsedate_tz>>> parsedate_tz('Tue Jun 22 07:46:22 EST 2010')(2010, 6, 22, 7, 46, 22, 0, 1, -1, -18000)请参阅为各种Python版本生成时区感知的datetime对象的解决方案:从电子邮件中解析带有时区的日期.以这种格式,EST在语义上等同于-0500..不过,总的来说,仅用时区缩写来唯一地标识时区是不够的。.