将用户输入的日期从 'mm/dd/yyyy' 转换为 'Mm dd, yyyy'

Converting date from user input from 'mm/dd/yyyy' to 'Mm dd, yyyy'

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

用户输入示例 (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() 获取字符串形式的月份、日期和年份。然后你可以只使用月份的整数值来获取月份字符串。

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() 转换为整数后,您可以调整索引以获取适当的月份值。

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