【问题标题】:ValueError: time data 1.2.20 does not match format %m/%d/%yValueError: 时间数据 1.2.20 与格式 %m/%d/%y 不匹配
【发布时间】:2020-02-10 14:51:09
【问题描述】:

为什么我总是收到这个错误?

我想要什么:输入 eu-dates,创建日期范围并创建一个值为“第一个日期的月份和年份”的变量。由于代码以 us 格式读取日期,因此我必须更改格式。我需要使用列表和命名输出的变量。 但是代码将输入读取为 us-date 并生成错误的范围。 所以我尝试更改格式,但我不断收到值错误。

如果要输入 1.2.20 和 10.2.20 我希望输出为:Feb_20

start_date = input("Enter Start Date: ")
end_date = input("Enter Last (including) Date: ")

start_date=datetime.datetime.strptime(start_date, '%m/%d/%y').strftime('%d/%m/%y')
end_date=datetime.datetime.strptime(end_date, '%m/%d/%y').strftime('%d/%m/%y')

date_list=[]
for n in range(int ((end_date - start_date).days)+1):
    date_list.append((start_date + datetime.timedelta(n)).strftime("%d %m %y"))

file_version = (start_date).strftime("%b") + "_" +(start_date).strftime("%y")

print(file_version)

但这就是我得到的:

ValueError: time data '1.2.20' does not match format '%m/%d/%y'

提前感谢您的帮助

【问题讨论】:

  • 你不明白什么?你的格式字符串有/,但你的日期有.

标签: python date format


【解决方案1】:

如果您希望输入为 2020 年 2 月 20 日的 1.20.20,请使用

strptime(start_date, '%d.%m.%y')

您需要将分隔符从/更改为.,并将%d放在第一位。

【讨论】:

  • 你认为它是干什么用的?
  • 我只是没注意它=S
猜你喜欢
  • 2022-01-20
  • 2018-03-18
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 1970-01-01
相关资源
最近更新 更多