16

我有一个datetime我保存到这样的文件的文件:

time1 = datetime.datetime.now()
f.write(str(time1))

现在当我读到它时,我意识到它time是一个字符串。我尝试了不同的方法来转换它,但到目前为止没有运气。

time = line[x:x+26]

如何将 a datetimeback 的字符串表示形式转换为datetime对象?

4

4 回答 4

16

首先,您需要弄清楚文件中日期的格式并使用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)

然后减去 datetime 对象以获得timedelta

delta = datetime.datetime.now() - previousTime
于 2012-11-13T07:00:14.890 回答
11

尝试使用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详细说明时间差异的对象。

于 2012-11-13T07:01:16.363 回答
5

在 python 3.7+ 中稍微简单一些

要字符串:

import datetime

my_date_string = datetime.datetime.utcnow().isoformat()

从字符串:

my_date = datetime.datetime.fromisoformat(my_date_string)
于 2021-02-13T19:41:45.537 回答
0

只需使用:

var x = DateTime.parse(time1);

x您需要的 DateTime 对象在哪里

于 2020-08-17T07:49:42.273 回答