【问题标题】:Converting date from user input from 'mm/dd/yyyy' to 'Mm dd, yyyy'将用户输入的日期从 'mm/dd/yyyy' 转换为 'Mm dd, yyyy'
【发布时间】:2021-05-31 11:18:39
【问题描述】:

我想转换输入的日期格式,并将月份从数字更改为字符串。

示例用户输入 (mm/dd/yyyy):12/02/1999

进入:1999 年 12 月 2 日

然后这段代码

months = ['Jan', 'Feb', 'March', 'Apr', 'May', 'June', 'July',
          'Aug', 'Sept', 'Oct', 'Nov', 'Dec']

x = (input("Enter Date (mm/dd/yyyy): "))
spos = x.find('/')
print("Formatted Date (Mm dd, yyyy):", months[], x[spos+1:5], x[spos+4:]) 

其中months[] 将是用户输入的相应日期mm/dd/yyyy

Dec 将从我制作的列表中获取。

【问题讨论】:

  • 您可以使用split()获取月、日、年

标签: python-3.x list slice


【解决方案1】:

使用split() 以字符串形式获取月份、日期和年份。然后就可以直接使用月份的整数值来获取月份字符串了。

months = ['Jan', 'Feb', 'March', 'Apr', 'May', 'June', 'July',
          'Aug', 'Sept', 'Oct', 'Nov', 'Dec']

x = (input("Enter Date (mm/dd/yyyy): "))
mon, date, year = x.split('/')
month_str = months[int(mon) - 1]
print(f"Formatted Date (Mm dd, yyyy): {month_str} {date}, {year}")

您可能想要添加一些错误检查

在您的方法中,您不能使用months[]。你必须使用一些索引。您已经获得了第一个/ 的位置为spos。你可以像这样使用它 -

print("Formatted Date (Mm dd, yyyy):", months[int(x[:spos]) - 1], x[spos+1:5], x[spos+4:])

这里x[:spos] 将仅表示月份值。使用int() 转换为整数后,您可以调整索引以获取适当的月份值。

但我认为上面的会比这个更清晰,更容易理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多