2017-02-01 1 views
1

私はPython 3.5.2でtime.strptimeに奇妙な問題があります。テスト目的のために、time.strftimeで時間文字列を生成してから、両方の場合で同じ書式設定文字列を使用してtime.strptimeでその文字列を解析しようとしています。Python 3.5.2 strptimeは、同じ書式設定文字列を使用しているときにstrftimeからの出力を読み取ることができません。

これを示すサンプルコード:

#!/usr/bin/env python 

import time 

if __name__ == '__main__': 
    time_test=time.strftime('%Y-%m-%dT%H:%M:%S%z', time.localtime()) 
    print (time_test) 
    test=time.strptime('%Y-%m-%dT%H:%M:%S%z', time_test) 
    print (time.strftime('%Y-%m-%d %H:%M:%S', test)) 

私が見ている結果:

2017-02-01T11:23:53-0800 
Traceback (most recent call last): 
    File "test_time.py", line 8, in <module> 
    test=time.strptime('%Y-%m-%dT%H:%M:%S%z', time_test) 
    File "/usr/local/Python-3.5.2/lib/python3.5/_strptime.py", line 504, in _strptime_time 
    tt = _strptime(data_string, format)[0] 
    File "/usr/local/Python-3.5.2/lib/python3.5/_strptime.py", line 343, in _strptime 
    (data_string, format)) 
ValueError: time data '%Y-%m-%dT%H:%M:%S%z' does not match format '2017-02-01T11:23:53-0800' 

答えて

0

ああ:私は、引数が逆time.strptimeようになりました。

正しいコードは次のようになります。

#!/usr/bin/env python 

import time 

if __name__ == '__main__': 
    time_test=time.strftime('%Y-%m-%dT%H:%M:%S%z', time.localtime()) 
    print (time_test) 
    test=time.strptime(time_test, '%Y-%m-%dT%H:%M:%S%z') 
    print (time.strftime('%Y-%m-%d %H:%M:%S', test)) 
関連する問題