python - 使用 Python datetime 获取每天的第一个和最后一个时间

标签 python datetime

我有一个这种格式的时间戳列表:“2016-08-01 13:02:57”或“%Y-%m-%d-%H-%M-%S-%f”

我想获取每天的第一次和最后一次。因此,如果有两天 8/1 和 7/29,函数将返回 4 个值。例如:

8/1
first: '2016-08-01 13:02:57'
last: '2016-08-01 13:08:44'

7/29
first: '2016-07-29 14:34:02'
last: '2016-07-29 14:37:35'

第一次是当天最先发生的,最后一次是当天最后发生的。

最佳答案

按年-月-日分组然后得到最小值和最大值:

from collections import defaultdict
d = defaultdict(list)
dates = ['2016-08-01 13:02:54',............]
for dte in dates:
    key, _ = dte.split()
    d[key].append(dte)

for k,v in d.items():
    print(min(v), max(v))

由于您不需要将日期格式转换为日期时间,因此字典顺序比较可以正常工作。您可以制作一个在一个循环中执行最小值和最大值的函数,但它可能不如内置函数快。

关于python - 使用 Python datetime 获取每天的第一个和最后一个时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39026297/

相关文章:

python - 在 NumPy 中根据相邻值计算值的惯用方法是什么?

python - 在 Altair 中设置 count() 截止值?

datetime - 如何在 Crystal Reports 中将 DateTime 对象转换为字符串

python - 在 OpenCV 中保存带有文本叠加的视频

javascript - 通过 Flask 将串行数据传递给 javascript

python - GAE 错误 :-/bin/sh: 1: exec: gunicorn: not found

python - 为 Pandas 系列的 float 分配日期

mysql - 检索特定月份的数据

sql - 为什么 LINQ to SQL 被扩展方法欺骗了?现在怎么办?

ruby - 在 ruby 中减去日期