我正在尝试从整数输入中将yyyy / mm / dd转换为dd / mm / yyyy。
当我将仿体内部的模式从datetime.date(year, month, day)
更改为datetime.date(day, month, year)
时,它会返回 Value错误。
def acc_expiration():
year = int(input('YEAR: '))
month = int(input('MONTH: '))
day = int(input('DAY: '))
exp_date = datetime.date(day, month, year)
return exp_date
ValueError: day is out of range for month
答案 0 :(得分:1)
datetime.date(年,月,日)类
这意味着您需要将参数放在正确的位置,与以后打印方式无关。
这应该有效:
def acc_expiration():
year = int(input('YEAR: '))
month = int(input('MONTH: '))
day = int(input('DAY: '))
exp_date = datetime.date(year, month, day)
return exp_date
现在让我们以dd / mm / yyyy格式打印它:
d = acc_expiration()
f = d.strftime('%d/%m/%Y')
print(f) # prints it formatted dd/mm/yyyy
您的值错误是因为您给day参数指定了年份整数(大于31的整数),而对于年份,您给出了日期整数。
答案 1 :(得分:0)
您正在使对象与演示文稿混淆。
查看Python文档中的Datetime(here)
datetime.date的正确顺序是class datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
一旦有了日期时间对象,就可以用多种方式格式化它的输出,以满足您的需求。
有帮助吗?