QTime 对象包含一个时钟时间,它可以表示为自午夜以来的小时、分钟、秒和毫秒数。它提供了用于比较时间和通过添加毫秒数来操作时间的功能。QTime使用24小时制格式;它没有AM/PM的概念。

构造具有小时h、分钟m、秒s和毫秒ms 的时间
常用的函数:
| hour() | 小时 |
| minute() | 分钟 |
| second() | 秒数 |
| msec() | 毫秒数 |
| A.msecsTo(B) | 判断时间的大小 |
| isNull() | 判断是否为空 |
| addMsecs(intms) | 返回一个比该对象晚的(毫秒) |
| addSecs(ints) | 返回一个比该对象晚的(秒) |
| currentTime() | 当前时间 |
| setHMS() | 设置时间 |
| toString() | 设置输出格式 |
toString()格式的种类:
| h | 显示小时(0-23),AM或PM的话(1-12) |
| hh | 显示小时(00-23),AM或PM的话(01-12) |
| H | 统一显示(0-23) |
| HH | 统一显示(00-23) |
| m | 显示分钟(0-59) |
| mm | 显示分钟(00-59) |
| s | 显示秒数(0-59) |
| ss | 显示秒数(00-59) |
| z | 显示毫秒数(0-999) |
| zzz | 显示毫秒数(000-999) |
| AP or A | 使用上午/下午显示。A/AP将被大写版本的QLocale::amText() 或QLocale::p mText() 取代。 |
| ap or a | 使用上午/下午显示。a/ap将被QLocale::amText() 或 QLocale::p mText() 的小写版本所取代。 |
| t | 时区 |

- QTime T(10,10,10,10);
- T.setHMS(20,20,20,200);//设置时间
- T=T.currentTime();//获取当前时间
- T.start();
- qDebug()<<T;
- T=T.addSecs(60);//加1分钟
- T=T.addMSecs(100);//加100ms
- qDebug()<<T.toString("hh::mm::ss::zzz");//显示内容
QDate 对象表示特定日期,而不考虑日历、区域设置或创建时使用的其他设置或由系统提供的其他设置。它可以报告表示日与外推公历或作为QCalendar对象提供的任何日历相关的日子的年、月和日。

构造具有年月日的日期。
常用的函数:
| date() | 天 |
| mouth() | 月 |
| year() | 年 |
| setDate() | 设置日期 |
| isValid() | 判断日期是否正确 |
| isNull() | 判断日期是否为空 |
| isLeapYear() | 是否为闰年 |
| getDate() | 获取日期 |
| currentDate() | 获取当前日期 |
| toString() | 设置显示格式 |
toString()的格式有:
| d | 显示天数(1-31) |
| dd | 显示天数(01-31) |
| ddd | 显示(Mon -Sun)周一到周日 |
| dddd | 显示(Monday-Sunday)星期一到星期天 |
| M | 显示月份(1-12) |
| MM | 显示月份(01-12) |
| MMM | 显示月份(Jan-Dec) |
| MMMM | 显示月份(January-December) |
| yy | 显示年份(00,99) |
| yyyy | 显示年份(完整的年份) |

- QDate date(10,10,10);//创建一个日期
- qDebug()<<date.year()<<"年"<<date.month()<<"月"<<date.day()<<"日";//输出日期
- date.setDate(2020,12,12);//设置日期
- date=date.currentDate();//获取当前日期
- qDebug()<<date.toString("yyyy::MM::dd");//设置输出类型

QDateTime 对象对日历日期和时钟时间(“日期时间”)进行编码。它结合了QDate和QTime类的功能。它可以从系统时钟读取当前日期时间。它提供了用于比较日期时间和通过添加秒数、天数、月数或年数来操作日期时间的函数。

构造函数有多种,最常见的为第5种。
- QDateTime DT(QDate(2020,20,20),QTime(11,11,11,100),Qt::TimeSpec::LocalTime);
- // 日期 时间 日期和时间的格式
Qt::TimeSpec有以下四种:
| Qt::LocalTime | 本地时间(默认) |
| Qt::UTC | 协调世界时间 |
| Qt::OffsetFromUTC | 与协调世界时相距的偏移量(以秒为单位) |
| Qt::TimeZone | 命名时区 |
常见的函数:
| date() | 日期 |
| time() | 时间 |
| isValid() | 判断是否符合规则 |
| isNull() | 判断是否为空 |
| setDate() | 设置日期 |
| setTime() | 设置时间 |
| toString() | 提供输出格式 |
| currentDateTime() | 获取当前时间 |
| currentDateTimeUtc() | 获取当前时间以utc为单位 |
| daysTo() | 计算天数的差值 |
| swap() | 交换日期(不会失败) |
- QDateTime DT(QDate(2020,20,20),QTime(11,11,11,100),Qt::TimeSpec::LocalTime);
- QDateTime DT1(DT);//创建一个新的时间
- DT=DT.currentDateTime();//获取当前时间
- DT.swap(DT1);//交换时间
- qDebug()<<DT.date().year()<<"年"<<DT.date().month()<<"月"<<DT.date().day()<<"日"
- <<DT.time().hour()<<"小时"<<DT.time().minute()<<"分钟"<<DT.time().second()<<"秒";

以下是它的子类:
| QDateTimeEdit | 显示时间和日期 |
| QSpinBox | 显示整数 |
| QDoubleSpinBox | 显示浮点数 |
QDateTimeEdit类,提供了一个可以编辑日期和时间的部件。
| Time Edit | 显示时间 |
| Date Ex | 显示日期 |
| Date/Time Edit | 显示时间和日期 |
在ui界面中分别为:

构造函数为:

常用的函数:
| setMinimumTime() | 设置最小时间 |
| setMaximumTime() | 设置最大时间 |
| setTime() | 设置默认事件 |
| setDisplayFormat() | 设置输出风格 |
- QTimeEdit *te=new QTimeEdit(this);
- te->setMinimumTime(QTime(10,10,10,100));//设置最小时间
- te->setMaximumTime(QTime(23,59,59,999));//设置最大时间
- te->setTime(QTime(20,20,20,20));//设置初始时间
- te->setDisplayFormat("hh时mm分钟ss秒");
- te->move(100,100);
默认风格:

设定后的风格:


常用的函数:
| setMinimumDate() | 设置最小日期 |
| setMinimumDate() | 设置最大日期 |
| setDate() | 设置默认日期 |
| setDisplayFormat() | 设置输出风格 |
- QDateEdit *de=new QDateEdit(this);
- de->move(100,100);
- de->setDate(QDate(2020,10,10));//设置初始日期
- de->setMaximumDate(QDate(2099,12,31));//最大日期
- de->setMinimumDate(QDate(2020,1,1));//最小日期
- de->setDisplayFormat("yyyy年MM月dd日");
默认格式:

设置后的格式:

构造函数:

常用的一些函数:
| setDateTime() | 设置时间 |
| setDisplayFromat() | 设置显示格式 |
| setCalendarPopup() | 设置是否显示日历 |
| 设置最大最小日期和时间就不列举了 |
- QDateTimeEdit *dte=new QDateTimeEdit(this);
- dte->setDateTime(QDateTime(QDate(2020,20,20),QTime(20,20,20,200)));//设置时间日期
- dte->setDateTime(QDateTime::currentDateTime());//设置当前时间
- dte->setDisplayFormat("yyyy年MM月dd日 ddd HH时mm分ss秒");//设置格式
- dte->setCalendarPopup(true);//弹出日历窗口
