如何在 tkinter 中输入 if 语句日期格式?

How to put in if statement date format for entry in tkinter?

 def Verification():
    date_format = "%d/%m/%Y"
    
    if (datetime.strptime("1/1/2001", date_format) <= date_ < datetime.strptime("31/1/2008", date_format)):
        print('bravo')
    date_= datetime.strptime(date_,date_format)
    vt=date_
vt =StringVar()
vt.set('')
lb = Label(parent, text = 'birth day:  ')
cp = Entry(parent, textvariable=vt)
bt = Button(parent, text ='Verify', command = Verification)
lb.place(x=30, y=90)
cp.place(x=95, y=90)
bt.place(x=220,y=90) 

我不确定我是否理解您的问题,因此以下是基于我认为您所问内容的答案。

它是这样工作的:当按下 Verify 按钮时,将调用 verification() 函数,该函数最初将尝试解析用户输入到 datetime 实例。如果它不能做到这一点,将出现一条错误消息。如果成功,则接下来检查它是否在要求的日期范围内。同样,如果不是,则显示一条错误消息。

from datetime import datetime
from tkinter import *
import tkinter.messagebox as messagebox


DATE_FORMAT = "%d/%m/%Y"
MIN_DATE = datetime.strptime('1/1/2001', DATE_FORMAT)
MAX_DATE = datetime.strptime('31/1/2008', DATE_FORMAT)


def verification():
    try:
        date_= datetime.strptime(vt.get(), DATE_FORMAT)
    except ValueError:
        messagebox.showerror('Invalid Date', f'"{vt.get()}"')
        return

    if MIN_DATE <= date_ < MAX_DATE:  # Check date range.
        messagebox.showinfo('Bravo', "You entered a valid date!")
    else:
        messagebox.showerror('Out of range', vt.get())


parent = Tk()
parent.geometry('300x200')

vt = StringVar(value='D/M/Y')  # Initially show required format.

lb = Label(parent, text='birth day:  ')
cp = Entry(parent, textvariable=vt)
bt = Button(parent, text ='Verify', command=verification)

lb.place(x=30, y=90)
cp.place(x=95, y=90)
bt.place(x=220,y=90)

parent.mainloop()

截图运行: