将时间戳列表转换为日期时间列表
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))
在我的程序中,我过滤日期。我收到它们作为时间戳列表:
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))