将时间戳列表转换为日期时间列表

Convert timestamp list to datetime list

在我的程序中,我过滤日期。我收到它们作为时间戳列表:

timestamp = [1545730073]

这个列表的类型是:

print(type(timestamp))

Out: <class 'int'>

为了将这个列表转换成datetime/datetime64的列表,我尝试了以下代码的几个版本:

dt_object = datetime.datetime.fromtimestamp(timestamp)
print(dt_object)

dt_object = [datetime.datetime.fromtimestamp(item) for item in timestamp]
print(dt_object)

我需要这种类型来稍后通过以下函数提取日期:

import datetime

dt_object = dt_object.date()
print(dt_object)

最终的输出应该是 Out: 2018-12-25.

你们有什么建议可以调整我的代码来完成这个任务吗?

不要在方括号内写时间戳。 试试这段代码是否正常工作。

timestamp =1545730073
dt_object = datetime.datetime.fromtimestamp(timestamp)
dt_object = dt_object.date()
print(dt_object)

假设时间戳在列表中 strings/int:

import datetime as dt
timestamp = [1545730073,1645733473]   # or timestamp = ['1545730073','1645733473']

for ts in timestamp:
    print(dt.datetime.fromtimestamp(int(ts)).date())

输出:

2018-12-25
2022-02-25

编辑:

使用列表理解:

print([dt.datetime.fromtimestamp(int(ts)).date() for ts in timestamp])

输出:

[datetime.date(2018, 12, 25), datetime.date(2022, 2, 25)]

编辑 2:

如果要替换时间戳,使用enumerate():

import datetime as dt
timestamp = [1545730073,1645733473]   # or timestamp = ['1545730073','1645733473']

for indx, ts in enumerate(timestamp):
    timestamp[indx] = dt.datetime.fromtimestamp(int(ts)).date()

print(timestamp)

输出:

[datetime.date(2018, 12, 25), datetime.date(2022, 2, 25)]

获取字符串日期'2018-12-25',像这样

dt_object.strftime("%Y-%m-%d")

如果你有时间戳列表,应该是这样的:

timestamp = [1545730073, 1545730073]
dates = [datetime.datetime.fromtimestamp(item).date() for item in timestamp]

也可以使用地图,

dt_object = list(map(datetime.date.fromtimestamp, timestamp))