日期与时间控件QDate, QTime, QDateTime
继承于 QAbstractSpinBox
日期格式符:
d 没有前导零的数字的日期(1到31)
ddd 缩写的本地化日期名称(例如'Mon'到'Sun'
dddd 完整本地化的日期名称(例如“星期一”到“星期日”)
M 没有前导零的数字的月份(1-12)
MM 月份为前导零的数字(01-12)
MMM 缩写的本地化月份名称(例如'Jan'到'Dec')
MMMM 完整的本地化月份名称(例如“1月”到“12月”)
yy 年份为两位数字(00-99)
yyyy 年份为四位数字
时间格式符:
h 没有前导零的小时(如果显示AM / PM,则为0到23或1到12)
hh 前导零的小时(如果AM / PM显示,则为00到23或01到12)
H 没有前导零的小时(0到23,即使有AM / PM显示)
HH 前导零的小时(00到23,即使有AM / PM显示)
m 没有前导零的分钟(0到59)
mm 前导零(00到59)的分钟
s 整个秒没有前导零(0到59)
ss 带有前导零(00到59)
z 第二个小数部分, 没有尾随零的毫秒(0到999)
zzz 第二个小数部分, 有尾随零的毫秒(000到999)
AP / A 使用AM / PM显示 AM--上午 PM--下午
ap / a 使用am / pm显示
t 时区
QDateTimeEdit:
import sys from PyQt5.QtWidgets import QApplication, QWidget,QDateTimeEdit,QPushButton from PyQt5.QtCore import QDateTime,QDate,QTime class Demo(QWidget): def __init__(self): super().__init__() self.resize(300,300) def A(): s=t.elapsed() #返回从start()或restart()开始计时到这条语句的毫秒数 #section操作 s = dte1.sectionCount() # 获取section个数--就是日期时间格式个数 s=dte1.currentSectionIndex() #返回当前Section的序号 dte1.setFocus() #注意:获取焦点指令会把section的序号返回0 #dte1.setCurrentSectionIndex(3) #设置当前操作的日期时间section--根据序号 dte1.setCurrentSection(QDateTimeEdit.SecondSection) #设置当前操作的日期时间section--根据指定的section #QDateTimeEdit.YearSection 年部分 #QDateTimeEdit.MonthSection 月部分 #QDateTimeEdit.DaySection 日部分 #QDateTimeEdit.HourSection 小时部分 #QDateTimeEdit.MinuteSection 分部分 #QDateTimeEdit.SecondSection 秒部分 #QDateTimeEdit.MSecSection 毫秒部分 #QDateTimeEdit.AmPmSection #QDateTimeEdit.NoSection 没有 s=dte1.sectionText(QDateTimeEdit.HourSection) #返回指定section的文本 print(s) def B(): dte1.setCalendarPopup(True) #是否弹出日历控件 #True 按钮变成下拉按钮,点击下拉按钮弹出日历控件 #calendarPopup() 返回是否弹出日历控件 s=dte1.dateTime() #获取QDateTime s=dte1.date() #获取QDate s=dte1.time() #获取QTime btn=QPushButton('按钮',self) btn.move(80,250) btn.clicked.connect(A) btn1 = QPushButton('按钮1', self) btn1.move(160, 250) btn1.clicked.connect(B) dte=QDateTimeEdit(self) #实例化一个日期时间控件 dte.move(100,20) dt=QDateTime(1968,1,4,7,38,4) #创建日期时间对象;1968年1月4日7点38分4秒 dte1 = QDateTimeEdit(dt,self) # 实例化一个日期时间控件--自定义日期时间 #参数1 可以是QDateTime,QDate,QTime dte1.move(100,70) dte2 = QDateTimeEdit(QDate.currentDate(), self) # 实例化一个日期控件--没有时间 dte2.move(100, 120) dte2 = QDateTimeEdit(QTime.currentTime(), self) # 实例化一个时间控件--没有日期 dte2.move(100, 170) #QDateTime类 dt=QDateTime.currentDateTime() #获取系统当前日期时间 #QDateTime(2019, 6, 6, 10, 37, 26, 884) dt1=dt.addYears(2) #在dt基础上增加2年后赋值给dt1,dt不变 dt1=dt.addMonths(2) #在dt基础上增加2月后赋值给dt1,dt不变 dt1=dt.addSecs(2) #在dt基础上增加2秒后赋值给dt1,dt不变 dt1 = dt.addMSecs(2) #在dt基础上增加2毫秒后赋值给dt1,dt不变 dt1 = dt.addDays(2) # 在dt基础上增加2日后赋值给dt1,dt不变 s=dt.offsetFromUtc() #返回与国际标准时间的差,秒 #dte1.setDisplayFormat('yy-MM-dd mm:ss:zzz') #设置显示格式 #displayFormat() -> str 返回格式符 #日期时间范围: dte1.setMaximumDateTime(QDateTime(2020, 2, 10, 1, 5, 5)) # 设置最大日期时间 # 默认 9999年12月31日 23:59:59 999毫秒 #maximumDateTime() -> QDateTime 返回最大日期时间 #clearMaximumDateTime() 清除自定义的最大日期时间,恢复默认值 #setMinimumDateTime(QDateTime) 设置最小日期时间 #minimumDateTime() -> QDateTime 返回最小日期时间 #clearMinimumDateTime() 清除自定义的最小日期时间,恢复默认值 #dte1.setDateTime() #设置日期时间范围范围 #日期范围: #setMaximumDate(QDate) 设置最大日期,默认包含9999年12月31日 #maximumDate() -> QDate 获取最大日期 #clearMaximumDate() 清除自定义最大日期, 恢复默认 #setMinimumDate(QDate) 设置最小日期,默认1752年9月14日 #minimumDate() -> QDate 获取最小日期 #clearMinimumDate() 清除自定义最小日期, 恢复默认 #setDateRange(min_date, max_date) 日期范围 #时间范围: #setMaximumTime(QTime) 设置最大时间 #maximumTime() -> QTime 返回最大时间 #clearMaximumTime() 清除自定义时间 #setMinimumTime(QTime) 设置最小时间 #minimumTime() -> QTime 返回最小时间 #clearMinimumTime() 清除最小时间 #setTimeRange(min_time, max_time) 设置范围 #QDateEdit 日期控件款 #QTimeEdit 时间控件框 #QTime类 t1=QTime(8,20) #实例化时间对象-8点20分 t=QTime.currentTime() #获取系统当前时间 t.start() #开始计时 #restart() 重新开始计时 t1=t.addSecs(5) #在t基础上增加5秒后赋值给t1,t不变 t1=t1.addMSecs(5) #在t基础上增加5毫秒后赋值给t1,t不变 t1=t.hour() #获取hour t1=t.minute() #获取minute t1=t.second() #获取second t1=t.msec() #获取毫秒 #QDate类 d=QDate(1968,1,4) d.setDate(1996, 3, 18) #设置日期 d = QDate.currentDate() # 获取当前日期 print(d) s=d.addYears(2) #增加2年,d不变 s=d.addMonths(2) #增加2月,d不变 s=d.addDays(2) #增加2日,d不变 s=d.day() #获取日 s=d.month() #获取月 s=d.year() #获取年 s=d.dayOfWeek() #获取星期几 s=d.dayOfYear() #这一年 第几日 s=d.daysInMonth() #这一月总共多少天 s=d.daysInYear() #这一年总共多少天 s=d.daysTo(QDate(2019,5,4)) #计算时间差 单位:日 #参数中的日期减去d print(s) #信号 dte1.dateTimeChanged.connect(lambda x:print('日期时间改变了',x)) #日期时间发生改变时发出信号 #把改变后的QDateTime传给槽函数 #dateChanged(QDate date) 日期改变时发出信号 #timeChanged(QTime time) 时间改变时发出信号 if __name__ == '__main__': app = QApplication(sys.argv) demo = Demo() demo.show() sys.exit(app.exec_())
天子骄龙