似乎这应该是如此简单,但对于我的生活,我找不到答案。我从数据库中提取两个日期时间/时间戳:
2015-08-10 19:33:27.653
2015-08-10 19:31:28.209
如何从第二个中减去第一个,最好是以毫秒为单位的结果?是的,我也有约会,因为我需要它在午夜左右工作。
答案 0 :(得分:16)
将您的字符串解析为datetime.datetime
个对象并减去它们:
from datetime import datetime
d1 = datetime.strptime("2015-08-10 19:33:27.653", "%Y-%m-%d %H:%M:%S.%f")
d2 = datetime.strptime("2015-08-10 19:31:28.209", "%Y-%m-%d %H:%M:%S.%f")
print(d1 - d2)
给我:
0:01:59.444000
另请查看timedelta
文档以了解所有可能的操作。
答案 1 :(得分:3)
你可以在2个日期时间对象上进行减法以获得差异
>>> import time
>>> import datetime
>>>
>>> earlier = datetime.datetime.now()
>>> time.sleep(10)
>>> now = datetime.datetime.now()
>>>
>>> diff = now - earlier
>>> diff.seconds
10
将字符串转换为datetime对象
datetime.strptime("2015-08-10 19:33:27.653", "%Y-%m-%d %H:%M:%S.%f")
答案 2 :(得分:1)
timedelta.seconds
不表示timedelta中的总秒数,而是表示模数60的总秒数。
调用函数timedelta.total_seconds()
而不是访问timedelta.seconds
属性。
答案 3 :(得分:0)
对于python 3.4,首先需要将表示时间的字符串转换为datetime对象,然后datetime模块的有用工具可以处理日期和时间。
from datetime import datetime
def to_datetime_object(date_string, date_format):
s = datetime.strptime(date_string, date_format)
return s
time_1 = '2015-08-10 19:33:27'
time_2 = '2015-08-10 19:31:28'
date_format = "%Y-%m-%d %H:%M:%S"
time_1_datetime_object = to_datetime_object(time_1, date_format)
time_2_datetime_object = to_datetime_object(time_2, date_format)
diff_time = time_1_datetime_object - time_2_datetime_object