0

这是我的代码

e1 = DateEntry(frameLabDate, textvariable=cVarChange, date_pattern='dd/mm/yyyy')
e1.grid(row=0, column=2, padx=8)

我在函数中调用日期值

def fun():
    a=e1.get()
    Date = datetime.strptime(a, '%Y/%m/%d')

所以在这里我的输入是这样的22/10/2020。我想要的输出是2020/10/22

执行上述代码后,出现以下错误。

ValueError: time data '2020-10-22' does not match format '%Y/%m/%d'

提前致谢。

4

2 回答 2

0

你可以试试:

from datetime import datetime

def fun(a):
    date_obj = datetime.strptime(a, '%d/%m/%Y')
    date_str = datetime.strftime(date_obj, '%Y/%m/%d')
    return date_str

fun("22/10/2020")
于 2020-10-22T07:26:11.287 回答
0

您应该使用get_date()代替get()和使用strftime()将日期转换为所需的格式:

def fun():
    a = e1.get_date() # return datetime.date object
    print(a.strftime('%Y/%m/%d')) # convert to desired format
于 2020-10-22T07:41:19.580 回答