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

时间:2019-03-29 10:36:58

标签: python pandas datetime datetime-format python-datetime

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

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

你们是否有建议来调整我的代码以完成此任务?

4 个答案:

答案 0 :(得分:3)

假设时间戳记在字符串/整数列表中:

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)]

答案 1 :(得分:0)

请勿在方括号内写入时间戳。 尝试使此代码正常工作。

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

答案 2 :(得分:0)

像这样获取字符串日期“ 2018-12-25”

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

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

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

答案 3 :(得分:0)

您还可以使用地图

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