2017-09-22 18 views
1

私はPythonの機能を習得しようとしていますが、わからないことがあります。私が実行したときにPythonの日付時刻エラー

calculated_time = '2014.03.08 11:43:12' 
>>> calculated_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
>>> print calculated_time 
    2017-09-22 15:59:34 

は今:

cmpDate = datetime.strptime(calculated_time, '%Y.%m.%d %H:%M:%S') 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/lib/python2.7/_strptime.py", line 332, in _strptime 
(data_string, format)) 
ValueError: time data '2017-09-22 16:35:12' does not match format'%Y.%m.%d %H:%M:%S' 

私が直接この日付を渡す場合、私は、理由を理解することはできません、それが実行されているが、私は変数に保存した後にそれを渡すとき、私はしましたエラーが発生しました。年、月、日の間

'%Y.%m.%d %H:%M:%S' 
'%Y-%m-%d %H:%M:%S' 

お知らせ異なるセパレータ:

+1

あなたは '%Y.%m。%d'を探していて、それに一致しない'%Y-%m-%d'を提供しています... –

答えて

1

彼らは同じフォーマットではありませんか? strftimestrptimeの間で一貫したdatetime形式を使用する必要があります。一例として、

>>> from datetime import datetime 
>>> datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
'2017-09-22 15:06:51' 
>>> datetime.strptime(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "%Y-%m-%d %H:%M:%S") 
datetime.datetime(2017, 9, 22, 15, 3, 52) 
>>> datetime.strptime(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "%Y.%m.%d %H:%M:%S") 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/media/steam/anaconda3/lib/python3.6/_strptime.py", line 565, in _strptime_datetime 
    tt, fraction = _strptime(data_string, format) 
    File "/media/steam/anaconda3/lib/python3.6/_strptime.py", line 362, in _strptime 
    (data_string, format)) 
ValueError: time data '2017-09-22 15:03:57' does not match format '%Y.%m.%d %H:%M:%S' 
>>> datetime.now().strftime("%Y.%m.%d %H:%M:%S") 
'2017.09.22 15:06:55' 
>>> datetime.strptime(datetime.now().strftime("%Y.%m.%d %H:%M:%S"), "%Y.%m.%d %H:%M:%S") 
datetime.datetime(2017, 9, 22, 15, 4, 3) 
+0

ああ!それは愚かな間違いでした。ありがとう:) – Taniya

0

あなたが'%Y.%m.%d %H:%M:%S'の形式を指定しますが、あなたが入れたので、「 - 」日付要素の代わりの間の「」

+0

うん、それを考え出した – Taniya