Python 中将字符串转换为时间格式

19
time1 = "2010-04-20 10:07:30"
time2 = "2010-04-21 10:07:30"

如何将上述内容从字符串转换为时间戳?

我需要计算上述时间戳之间的差值 time2-time1

4个回答

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

我遇到了一个错误,提示 AttributeError: type object 'datetime.datetime' has no attribute 'strptime'。我正在使用 Python 2.4。 - Rajeev
@Rajeev,你能升级吗?2.4版本太老了。 - John La Rooy

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() 将能够很好地工作。

-1
import time

time1 = "2010-04-20 10:07:30"

time_tuple = time.strptime(time1, "%Y-%m-%d %H:%M:%S")

timestamp = time.mktime(time_tuple)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接