【问题标题】:Problems with turning a timedelta calculation into " %A, %B %d, %Y"将 timedelta 计算转换为“%A, %B %d, %Y”的问题
【发布时间】:2015-06-20 16:11:18
【问题描述】:

我想使用以下代码 sn-p 将未来几天的生成器转换为可读的单词,我将使用 .strftime(" %A, %B %d, %Y") 将其存储在一个列表中。

base = datetime.today()
date_list = [base - timedelta(days=x) for x in range(0, 7)]
datescroll_list = ()

但是,返回的是不可读的格式。我所知道的将该格式转换为可读格式的方法不起作用。

【问题讨论】:

  • 显示无效的代码
  • 在接下来的日子里你不想base + timedelta(days=x)吗?
  • 是的,我注意到并修复了它。谢谢你指出来..

标签: python timedelta


【解决方案1】:

如果您添加括号然后调用 strftime,您的代码可以正常工作:

from datetime import datetime,timedelta
base = datetime.today()
date_list = [(base - timedelta(days=x)).strftime(" %A, %B %d, %Y") for x in range(0, 7)]
print(date_list)

输出:

[' Saturday, June 20, 2015', ' Friday, June 19, 2015', ' Thursday, June 18, 2015', ' Wednesday, June 17, 2015', ' Tuesday, June 16, 2015', ' Monday, June 15, 2015', ' Sunday, June 14, 2015']

【讨论】:

  • 没有问题,添加括号意味着首先评估 base - timedelta(days=x) 然后我们在返回的日期时间对象上调用 strftime。
猜你喜欢
  • 1970-01-01
  • 2018-09-14
  • 2021-04-25
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多