首页 > 解决方案 > 将整数秒值转换为日期时间。Python

问题描述

我试图找出将秒数数组自动转换为日期时间的最简单方法。我非常熟悉将 1970 年的秒数转换为日期时间,但我这里的值是给定一天中经过的秒数。例如,14084 是 2011、11、11 的秒数,我能够生成下面的日期时间。

str(dt.timedelta(seconds = 14084))
Out[245]: '3:54:44'

dt.datetime.combine(date(2011,11,11),time(3,54,44))
Out[250]: datetime.datetime(2011, 11, 11, 3, 54, 44)

是否有更快的数组转换方法。

标签: pythondatetime

解决方案


numpy支持使用 timedelta 类型的日期时间数组来操作它们: https ://numpy.org/doc/stable/reference/arrays.datetime.html

例如,您可以这样做:

import numpy as np
date_array = np.arange('2005-02', '2005-03', dtype='datetime64[D]')
date_array += np.timedelta64(4, 's')  # Add 4 seconds

如果您有一个秒数组,则可以将其转换为 timedeltas 数组并将其添加到固定的日期时间


推荐阅读