Python 将示例日期列表转换为GMT

Python 将示例日期列表转换为GMT,python,date,Python,Date,我想用python编写一段代码,将所有日期(各种格式)转换为标准格式。 我看到一个关于stackoverflow的问题 我想用python来做 我试过这个: DEFAULT_DATE = datetime.datetime(datetime.datetime.now().year, 1, 1) dt = parser.parse(date,default = DEFAULT_DATE) Original

我想用python编写一段代码,将所有日期(各种格式)转换为标准格式。 我看到一个关于stackoverflow的问题

我想用python来做

我试过这个:

DEFAULT_DATE = datetime.datetime(datetime.datetime.now().year, 1, 1)
dt = parser.parse(date,default = DEFAULT_DATE)

 Original                                                       Modified
 1.1995-01-24T09:08:17.1823213                           1995-01-24 09:08:17.182321
 2. Wed, 16 Jun 94 07:29:35 CST                          1994-06-16 07:29:35
 3. Thu, 13 Oct 94 10:13:13 -0700                        1994-10-13 10:13:13-07:00
 4. Wed, 9 Nov 1994 09:50:32 -0500 (EST)                 1994-11-09 09:50:32-05:00
 5. 21 dec 17:05                                         2014-12-21 17:05:00
 6. 21-dec 17:05                                         2014-12-21 17:05:00
 7. 21/dec 17:05                                         2014-12-21 17:05:00
 8. 21/dec/93 17:05                                      1993-12-21 17:05:00
 9. 16 Nov 94 22:28:20 PST                               1994-11-16 22:28:20
 10. 1999 10:02:18 'GMT'                                 1999-01-01 10:02:18+00:00
我还需要将时间转换为GMT。与2、3、4、9类似,它显示的时间与原始列表中给出的时间相同。我想把它们转换成GMT。
对于4,9中的日期和时间,如EST和PST等,我想将它们转换为GMT。

这里,请检查
dateutil.parser
,特别是tzinfo部分可能对您有用。

您可以将所有日期时间转换为,将所有原始日期时间对象视为UTC:

import pytz
def to_utc(dt):
    try:
        return dt.astimezone(pytz.utc)
    except ValueError:
        return pytz.utc.localize(dt)
演示:


你面临的问题是什么?你能编辑你的帖子,把你想要的输出也包括进去吗?如果我把星期三,1994年6月16日07:29:35 CST转换为GMT,这意味着时间应该是1994-06-16 13:29:35+00:00,对吗?
>>> print '\n'.join(original)
1995-01-24T09:08:17.1823213
Wed, 16 Jun 94 07:29:35 CST
Thu, 13 Oct 94 10:13:13 -0700
Wed, 9 Nov 1994 09:50:32 -0500 (EST)
21 dec 17:05
21-dec 17:05
21/dec 17:05
21/dec/93 17:05
16 Nov 94 22:28:20 PST
1999 10:02:18 'GMT'
>>> modified = [parser.parse(od, default=DEFAULT_DATE) for od in original]
>>> in_utc = [to_utc(md) for md in modified]
>>> for d in in_utc:
...     print d
...
1995-01-24 09:08:17.182321+00:00
1994-06-16 07:29:35+00:00
1994-10-13 17:13:13+00:00
1994-11-09 14:50:32+00:00
2014-12-21 17:05:00+00:00
2014-12-21 17:05:00+00:00
2014-12-21 17:05:00+00:00
1993-12-21 17:05:00+00:00
1994-11-16 22:28:20+00:00
1999-01-01 10:02:18+00:00