【问题标题】:Appending datetime to a list将日期时间附加到列表
【发布时间】:2021-12-13 04:27:30
【问题描述】:

请看下面的代码:

import datetime
data =[]
dt = datetime.datetime.today()
print(dt)
for i in range(60):
    delta = datetime.timedelta(minutes = i)
    dtnew = dt + delta
    data.append(dtnew)
 print(data)

这是运行代码后数据的样子:

[datetime.datetime(2021, 10, 27, 23, 8, 18, 897419),....] 

我应该得到这个:

[2021-10-27 23:08:18.897419,....]

有什么帮助吗?

【问题讨论】:

  • 当你打印一个列表时,它会打印出其项目的repr(调用__repr__),如果你要遍历列表并单独打印每个元素或者像@987654326那样做某事@,那么您可能会看到,因为它会隐式转换为字符串,调用__str__ 方法并以用户友好的格式打印出来
  • 将其转换为字符串:data.append(str(dtnew))
  • 您所说的“应该”得到的并不是 Python 中数据的实际表示。你的意思是你想要一个带有格式化日期时间的字符串列表吗?你说你得到的是一个实际的日期时间列表,这就是日期时间作为一种表示的样子,你可以在打印时根据需要对其进行格式化。

标签: python list datetime


【解决方案1】:

试试这个:

import datetime
data =[]
dt = datetime.datetime.today()
print(dt)
for i in range(60):
    delta = datetime.timedelta(minutes = i)
    dtnew = dt + delta
    data.append(str(dtnew))
print(data)

【讨论】: