python - datetime 与 date 的时间差为 0 秒
问题描述
我试图在 python 中获取两个日期之间的小时数,第一个是输入日期,第二个是来自 miniseed 文件名称的日期。
dt = datetime.strptime("2019-04-15T00:37:00", '%Y-%m-%dT%H:%M:%S')
//dt is the input date
for filename in os.listdir('.'):
if filename.endswith(".mseed"):
file_struct = filename.split('.')
datetime_object = datetime.strptime(file_struct[0], '%Y%m%d%H%M%S')
hours = abs((dt- datetime_object).seconds)//3600
print(dt, datetime_object, hours)
continue
else:
continue
结果是:
(datetime.datetime(2019, 4, 15, 0, 37, 10), '20190405082044', 16)
(datetime.datetime(2019, 4, 15, 0, 37, 10), '20190405000000', 0)
(datetime.datetime(2019, 4, 15, 0, 37, 10), '20190405083710', 16)
看起来 20190405000000 有问题(他的日期时间 obj 是datetime.datetime(2019, 4, 5, 0, 0)
)
解决方案
对于总经过的秒数,使用total_seconds
而不是seconds
hours = abs((dt -datetime_object).total_seconds()) // 3600
请注意,这total_seconds
是一种方法,因此是括号
推荐阅读
- excel - 如何在 VBA Excel 中使用公式名称?
- r - geom_line ggplot 的图例标签
- c++ - 如何降低这个问题的时间复杂度
- python - 解析 XML 文件以获取文件夹结构?
- swift - 管理两种不同类型数据的单个变量
- c# - 如何获取Windows UWP ClaimedBarcodeScanner识别的二维码的像素坐标
- javascript - 我如何处理从 javascript (jquery) 传递的 php 中的数据
- c++ - 〜(波浪号)在c ++中的scanf函数之前是什么意思?
- html - 选择具有相同背景的链接后背景图像消失
- reactjs - DOCZ :您可能需要适当的加载程序来处理此文件类型