【问题标题】:getting 2 different date input from user从用户那里获得 2 个不同的日期输入
【发布时间】:2020-02-22 04:00:51
【问题描述】:

我正在尝试获取 2 个不同日期的用户输入,我将这些输入传递给另一个函数。

def twodifferentdates():
    print("Data between 2 different dates")
    start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m&d&Y')
    end_date = datetime.strptime(input('Enter end date in m/d/y format'), '%m&d&Y')
    print(start_date)

twodifferentdates()

我尝试了很多不同的方法来输入日期,但我一直在输入日期

ValueError: 时间数据 '01/11/1987' 与格式 '%m&d&Y' 不匹配

我使用了相同的代码,其中讨论了: how do I take input in the date time format?

如有任何帮助,我们将不胜感激。

【问题讨论】:

  • 那是因为格式是%m/%d/%Y

标签: python datetime


【解决方案1】:

%m&d&Y 替换为%m/%d/%Y,如参考帖子中所述。

【讨论】:

    【解决方案2】:

    datetime.strptime() 要求您逐个字符地指定要输入的日期的格式。对于字符串'01/11/1987' 你会这样做

        datetime.strptime(..., '%m/%d/%Y')
    

    其中%m 是“两位数的月份”,%d 是“两位数的日期”,%Y 是“四位数的年份”(而不是两位数的年份%y。这些值用斜线分隔。

    另见the datetime documentation which describes how to use strptime and strftime

    【讨论】:

    • 更改仍然给我同样的错误:更改代码如下 start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m/&d/ &Y') end_date = datetime.strptime(input('以m/d/y格式输入结束日期'), '%m/&d/&Y')
    • %& 不是同一个字符。当您应该使用 % 时,您正在使用 &。特别是,&datetime 没有任何意义。
    【解决方案3】:

    我对 datetime 模块不是很有经验,但错误似乎是您接受输入的方式。你应该这样对待它:

    start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m &d &Y')
    

    start_date = datetime.strptime(input('Enter Start Date in m/d/y format'), '%m/&d/&Y')
    

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 2011-12-24
      • 2021-09-17
      • 2022-01-10
      • 2019-04-11
      • 1970-01-01
      相关资源
      最近更新 更多