如何将带时区的字符串日期转换为日期时间?

Nip*_*ips 4 python date

我的字符串中有日期:

Tue Oct 04 2016 12:13:00 GMT+0200 (CEST)
Run Code Online (Sandbox Code Playgroud)

我使用(根据https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior):

datetime.strptime(datetime_string, '%a %b %m %Y %H:%M:%S %z %Z')
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

ValueError: 'z' is a bad directive in format '%a %b %m %Y %H:%M:%S %z %Z'
Run Code Online (Sandbox Code Playgroud)

怎样做才正确呢?

L3v*_*han 5

%z 是+0200%ZCEST。所以:

>>> s = "Tue Oct 04 2016 12:13:00 GMT+0200 (CEST)"
>>> datetime.strptime(s, '%a %b %d %Y %H:%M:%S GMT%z (%Z)')
datetime.datetime(2016, 10, 4, 12, 13, tzinfo=datetime.timezone(datetime.timedelta(0, 7200), 'CEST'))
Run Code Online (Sandbox Code Playgroud)

我也将你的替换%m%d; %m是月份,以数字表示,因此在您的情况下04将被解析为四月。