次のようなファイルに保存するdatetime
があります。
time1 = datetime.datetime.now()
f.write(str(time1))
これを読むと、time
が文字列であることがわかります。私はそれを変換するためにさまざまな方法を試しましたが、今のところ運がありません。
time = line[x:x+26]
datetime
の文字列表現をdatetime
オブジェクトに戻すにはどうすればよいですか?
まず、ファイル内の日付の形式を把握し、 strptime メソッドを使用する必要があります。
_# substitute your format
# the one below is likely to be what's saved by str(datetime)
previousTime = datetime.datetime.strptime(line[x:x+26], "%Y-%m-%d %H:%M:%S.%f")
_
(ただし、dt.strftime(...)
よりもstr(dt)
を使用する方がよい)
次に、日時オブジェクトを減算して timedelta を取得します
_delta = datetime.datetime.now() - previousTime
_
dateutil
を使用してみてください。文字列をdatetime
オブジェクトに変換し直そうとする解析があります。
>>> from dateutil import parser
>>> strtime = str(datetime.now())
>>> strtime
'2012-11-13 17:02:22.395000'
>>> parser.parse(strtime)
datetime.datetime(2012, 11, 13, 17, 2, 22, 395000)
次に、あるdatetime
を別のオブジェクトから減算して、時間の違いを詳細に示すtimedelta
オブジェクトを取得できます。