【问题标题】:How to get difference in seconds between two strings? [duplicate]如何获得两个字符串之间的秒数差异? [复制]
【发布时间】:2014-11-09 12:10:31
【问题描述】:

我在 Python 中有两个字符串用于存储用户输入的时间。它们的格式为 hh:mm:ss - 例如 09:17:34

找出这两个时间之间的差异(以秒为单位)的最简单方法是什么?时间总是在同一天,所以不用担心午夜重叠等问题。

如果我使用字符串切片取出相关数字,然后使用datetime.datetime(),我可以为每个设置一个datetime 对象,但我需要给它一个日期以及我拥有的时间。

我玩过time 模块,但这似乎没有一种简单的方法来解决在timedelta 对象上使用.total_seconds 的方式的不同之处。

有没有更简单的方法?

【问题讨论】:

  • 为什么不将它们转换成有意义的表示形式——比如数字甚至日期?
  • 看起来像是 strptime 的工作

标签: python time python-datetime


【解决方案1】:

只需在两个时间字符串上使用datetime.datetime.strptime()直接;解析时间组件时使用默认日期 (1900-01-01)。

time1 = datetime.datetime.strptime(timestring1, '%H:%M:%S')
time2 = datetime.datetime.strptime(timestring2, '%H:%M:%S')
difference = time2 - time1

【讨论】:

  • 谢谢,太好了:-)
【解决方案2】:

您可以使用strptime

from datetime import datetime
t1 = datetime.strptime("02:03:04", "%H:%M:%S")
t2 = datetime.strptime("05:08:06", "%H:%M:%S")
t2 - t1
# datetime.timedelta(0, 11102)
(t2 - t1).seconds
# 11102

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2023-03-22
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多