3
>>> datetime.strptime('2014-02-13 11:55:00 -0800', '%Y-%m-%d %H:%M:%S %z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _strptime
    (bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z'

サポートされていないことは理解していますが、その理由はわかりません。それをサポートするのは難しくないようです。そして、' Offset from UTC ' は、タイムゾーンの省略形ほどあいまいではありません。

4

2 に答える 2

0

これはpython 2.7の修正です

使用する代わりに:

datetime.strptime(t,'%Y-%m-%dT%H:%M %z')

次のように、 を使用timedeltaしてタイムゾーンを説明します。

from datetime import datetime,timedelta
def dt_parse(t):
    ret = datetime.strptime(t[0:16],'%Y-%m-%dT%H:%M')
    if t[18]=='+':
        ret+=timedelta(hours=int(t[19:22]),minutes=int(t[23:]))
    elif t[18]=='-':
        ret-=timedelta(hours=int(t[19:22]),minutes=int(t[23:]))
    return ret
于 2016-08-17T09:23:55.280 に答える