Python中字符串转时间

19 投票
4 回答
46605 浏览
提问于 2025-04-16 07:05
time1 = "2010-04-20 10:07:30"
time2 = "2010-04-21 10:07:30"

怎么把上面的字符串转换成时间戳呢?

我需要计算这两个时间戳的差值,也就是 time2-time1

4 个回答

3

在编程中,有时候我们需要把一些东西放到一个地方,然后再从那个地方拿出来。这个过程就像是把书放到书架上,然后再从书架上拿书一样。

有些时候,我们会用一个叫做“数组”的东西来存放这些数据。数组就像一个整齐的书架,每个书的位置都是固定的。你可以通过书的位置(我们称之为“索引”)来找到它。

但是,数组有一个小问题,就是它的大小是固定的。一旦你决定了要放多少本书,就不能再增加或减少了。这就像是一个只能放十本书的书架,如果你想放第十一本书,就没地方放了。

为了克服这个问题,我们可以使用“列表”。列表就像一个可以随时扩展的书架,你可以随时添加或删除书籍,而不需要担心空间不够。

所以,当你在编程时,如果你需要一个可以随时调整大小的存储空间,列表会是一个不错的选择。而如果你知道你需要的空间是固定的,数组可能会更简单一些。

总之,选择数组还是列表,主要看你的需求是什么。希望这个解释能帮助你更好地理解这些概念!

>>> t1 = datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")
>>> t2 = datetime.strptime(time2, "%Y-%m-%d %H:%M:%S")
>>> t2-t1
datetime.timedelta(1)

>>> (t2-t1).days
1
>>> (t2-t1).seconds
0
3

如果你像我一样在用Python 2.4的系统:

from time import strptime
from datetime import datetime

str_to_datetime = lambda st: datetime(*strptime(st, '%Y-%m-%d %H:%M:%S')[:6])

str_to_datetime('2010-04-20 10:07:30')

否则,datetime.strptime()就可以正常使用了。

25

适用于 Python 2.5 及以上版本

from datetime import datetime
format = '%Y-%m-%d %H:%M:%S'
print datetime.strptime(time2, format) - 
        datetime.strptime(time1, format)
# 1 day, 0:00:00

补充:适用于 Python 2.4 版本

import time
format = '%Y-%m-%d %H:%M:%S'
print time.mktime(time.strptime(time2, format)) - 
        time.mktime(time.strptime(time1, format))
# 86400.0

撰写回答