【问题标题】:How To convert this list in unix timestamps to date python [duplicate]如何将此列表在unix时间戳中转换为日期python [重复]
【发布时间】:2021-08-09 07:20:35
【问题描述】:

这是unix时间戳列表

[1626325266384, 1626328880748, 1626332547188, 1626336091854, 1626339628069, 1626343243866, 1626415257315, 1626418895970, 1626422492406, 1626426036647, 1626429722183, 1626433273664, 1626436849458, 1626440458241, 1626444063135,]

几乎尝试了所有方法,但没有任何帮助。

【问题讨论】:

  • 有很多关于在 Python 中将 Unix 时间戳转换为 datetime 对象的文章。你有什么问题?你可以试试这个:datetimes = [datetime.fromtimestamp(t) for t in timestamps]timestamps 是你的时间戳列表。
  • 您能展示一下您尝试过的方法以及失败的原因吗?您是否尝试将这些值除以 1000?
  • for i in unixLst: ext = (timestamp.strftime('%Y-%m-%d %H:%M:%S'))
  • OSError: [Errno 22] Invalid argument 当我运行 datetimes = [datetime.fromtimestamp(t) for t in timestamps] 时出现此错误,其中时间戳 @Matthias Fripp
  • 看起来你有 JavaScript 时间戳(毫秒),而不是 Unix 时间戳(秒)。尝试除以 1000,然后使用 datetime.datetime.fromtimestamp()。

标签: python datetime python-datetime


【解决方案1】:

您的时间戳包含毫秒。 这是一个可行的解决方案:

import datetime
timestamp_with_ms = 1626325266384
dt = datetime.datetime.fromtimestamp(timestamp_with_ms / 1000)
formatted_time = dt.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(formatted_time)
# 2021-07-15 07:01:06.384

您的具体情况还需要for loop

my_list = [1626325266384, 1626328880748, 1626332547188, 1626336091854, 1626339628069, 1626343243866, 1626415257315, 1626418895970, 1626422492406, 1626426036647, 1626429722183, 1626433273664, 1626436849458, 1626440458241, 1626444063135]

import datetime
new_list=[]
for i  in my_list:
    timestamp_with_ms = i
    dt = datetime.datetime.fromtimestamp(timestamp_with_ms / 1000)
    formatted_time = dt.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
    new_list.append(formatted_time)

结果:

 ['2021-07-15 07:01:06.384',
 '2021-07-15 08:01:20.748',
 '2021-07-15 09:02:27.188',
 '2021-07-15 10:01:31.854',
 '2021-07-15 11:00:28.069',
 '2021-07-15 12:00:43.866',
 '2021-07-16 08:00:57.315',
 '2021-07-16 09:01:35.970',
 '2021-07-16 10:01:32.406',
 '2021-07-16 11:00:36.647',
 '2021-07-16 12:02:02.183',
 '2021-07-16 13:01:13.664',
 '2021-07-16 14:00:49.458',
 '2021-07-16 15:00:58.241',
 '2021-07-16 16:01:03.135']

【讨论】:

  • 如果我的输入是一个unix时间戳列表,我该怎么办!
  • 你已经知道怎么写循环了。
  • 如何将变量分配给循环的输出
  • 在循环之前创建一个空列表,然后将结果附加到它。请参阅我编辑的答案。
猜你喜欢
  • 1970-01-01
  • 2022-12-15
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 1970-01-01
相关资源
最近更新 更多