QT中日期和时间类

news/2025/1/13 8:04:09/

QT中日期和时间类

  • QDate
  • QTime
  • QDateTime

QDate

QDate类可以封装日期信息也可以通过这个类得到日期相关的信息, 包括:年, 月, 日。

// 构造函数
QDate::QDate();
QDate::QDate(int y, int m, int d);// 公共成员函数
// 重新设置日期对象中的日期
bool QDate::setDate(int year, int month, int day);
// 给日期对象添加 ndays 天
QDate QDate::addDays(qint64 ndays) const;
// 给日期对象添加 nmonths 月
QDate QDate::addMonths(int nmonths) const;
// 给日期对象添加 nyears 月
QDate QDate::addYears(int nyears) const;// 得到日期对象中的年/月/日
int QDate::year() const;
int QDate::month() const;
int QDate::day() const;
void QDate::getDate(int *year, int *month, int *day) const;// 日期对象格式化
/*d    - The day as a number without a leading zero (1 to 31)dd   - The day as a number with a leading zero (01 to 31)ddd	 - The abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses the system locale to localize the name, i.e. QLocale::system().dddd - The long localized day name (e.g. 'Monday' to 'Sunday'). Uses the system locale to localize the name, i.e. QLocale::system().M    - The month as a number without a leading zero (1 to 12)MM   - The month as a number with a leading zero (01 to 12)MMM	 - The abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses the system locale to localize the name, i.e. QLocale::system().MMMM - The long localized month name (e.g. 'January' to 'December'). Uses the system locale to localize the name, i.e. QLocale::system().yy   - The year as a two digit number (00 to 99)yyyy - The year as a four digit number. If the year is negative, a minus sign is prepended, making five characters.
*/
QString QDate::toString(const QString &format) const;// 操作符重载 ==> 日期比较
bool QDate::operator!=(const QDate &d) const;
bool QDate::operator<(const QDate &d) const;
bool QDate::operator<=(const QDate &d) const;
bool QDate::operator==(const QDate &d) const;
bool QDate::operator>(const QDate &d) const;
bool QDate::operator>=(const QDate &d) const;// 静态函数 -> 得到本地的当前日期

例子:

    QDate d2(2023,7,28);qDebug()<<d2;d2 = d2.addYears(1);d2 = d2.addMonths(1);d2 = d2.addDays(1);qDebug()<<d2;d2.setDate(2011,5,22);qDebug()<<d2;QString s2 = d2.toString();qDebug()<<s2;qDebug()<<"----------";QDate d1(2011,2,22);qDebug()<<(d1<d2);

在这里插入图片描述

格式化输出日期:

    QDate d3 = QDate::currentDate();qDebug()<<d3;qDebug()<<"year "<<d3.year()<<"month "<<d3.month()<<"day"<<d3.day();QString s31 = "M";s31 = d3.toString("yyyy-MM-dd");qDebug()<<s31;QString s32 = d3.toString("yyy-MMMM-dddd");qDebug()<<s32;

在这里插入图片描述

QTime

QTime类可以封装时间信息也可以通过这个类得到时间相关的信息, 包括:时, 分, 秒, 毫秒

// 构造函数
QTime::QTime();
/*h 		==> 取值范围: 0 ~ 23m and s 	==> 取值范围: 0 ~ 59ms 		==> 取值范围: 0 ~ 999
*/ 
QTime::QTime(int h, int m, int s = 0, int ms = 0);// 公共成员函数
// Returns true if the set time is valid; otherwise returns false.
bool QTime::setHMS(int h, int m, int s, int ms = 0);
QTime QTime::addSecs(int s) const;
QTime QTime::addMSecs(int ms) const;// 示例代码QTime n(14, 0, 0);                // n == 14:00:00QTime t;t = n.addSecs(70);                // t == 14:01:10t = n.addSecs(-70);               // t == 13:58:50t = n.addSecs(10 * 60 * 60 + 5);  // t == 00:00:05t = n.addSecs(-15 * 60 * 60);     // t == 23:00:00// 从时间对象中取出 时/分/秒/毫秒
// Returns the hour part (0 to 23) of the time. Returns -1 if the time is invalid.
int QTime::hour() const;
// Returns the minute part (0 to 59) of the time. Returns -1 if the time is invalid.
int QTime::minute() const;
// Returns the second part (0 to 59) of the time. Returns -1 if the time is invalid.
int QTime::second() const;
// Returns the millisecond part (0 to 999) of the time. Returns -1 if the time is invalid.
int QTime::msec() const;// 时间格式化
/*-- 时 --h	==>	The hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display)hh	==>	The hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display)H	==>	The hour without a leading zero (0 to 23, even with AM/PM display)HH	==>	The hour with a leading zero (00 to 23, even with AM/PM display)-- 分 --m	==>	The minute without a leading zero (0 to 59)mm	==>	The minute with a leading zero (00 to 59)

例子:

    QTime n(14, 0, 0);                // n == 14:00:00QTime t;t = n.addSecs(70);                // t == 14:01:10qDebug()<<t;t = n.addSecs(-70);               // t == 13:58:50qDebug()<<t;t = n.addSecs(10 * 60 * 60 + 5);  // t == 00:00:05qDebug()<<t;t = n.addSecs(-15 * 60 * 60);     // t == 23:00:00qDebug()<<t;

在这里插入图片描述

    int h = n.hour();int m = n.minute();int s = n.second();int ms = n.msec();qDebug()<<"h :"<<h<<" m: "<<m<<" s: "<<s<<"ms: "<<ms;

在这里插入图片描述

格式化输出;

    QString s4 = n.toString("h---m---s----");qDebug()<<s4;QString s5 = n.toString("h---m---s----zz");qDebug()<<s5;

在这里插入图片描述

    //获取当前时间QTime t5 = QTime::currentTime();//显示时间 (方式1)qDebug()<<"h :"<<t5.hour()<<" m: "<<t5.minute()<<" s: "<<t5.second()<<"ms: "<<t5.msec();//方式2QString s52 =t5.toString("hh-mm-ss.zz");qDebug()<<s52;

在这里插入图片描述

QDateTime

QDateTime类可以封装日期和时间信息也可以通过这个类得到日期和时间相关的信息, 包括:年, 月, 日, 时, 分, 秒, 毫秒。其实这个类就是QDate 和 QTime 这两个类的结合体。

// 构造函数
QDateTime::QDateTime();
QDateTime::QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec = Qt::LocalTime);// 公共成员函数
// 设置日期
void QDateTime::setDate(const QDate &date);
// 设置时间
void QDateTime::setTime(const QTime &time);
// 给当前日期对象追加 年/月/日/秒/毫秒, 参数可以是负数
QDateTime QDateTime::addYears(int nyears) const;
QDateTime QDateTime::addMonths(int nmonths) const;
QDateTime QDateTime::addDays(qint64 ndays) const;
QDateTime QDateTime::addSecs(qint64 s) const;
QDateTime QDateTime::addMSecs(qint64 msecs) const;// 得到对象中的日期
QDate QDateTime::date() const;
// 得到对象中的时间
QTime QDateTime::time() const;// 日期和时间格式, 格式字符参考QDate 和 QTime 类的 toString() 函数
QString QDateTime::toString(const QString &format) const;// 操作符重载 ==> 日期时间对象的比较
bool QDateTime::operator!=(const QDateTime &other) const;
bool QDateTime::operator<(const QDateTime &other) const;
bool QDateTime::operator<=(const QDateTime &other) const;
bool QDateTime::operator==(const QDateTime &other) const;
bool QDateTime::operator>(const QDateTime &other) const;
bool QDateTime::operator>=(const QDateTime &other) const;// 静态函数
// 得到当前时区的日期和时间(本地设置的时区对应的日期和时间)
[static] QDateTime QDateTime::currentDateTime();
    QDateTime dt1 = QDateTime::currentDateTime();qDebug()<<dt1;QString s1 = dt1.toString("yyyy/MM/dd hh:mm:ss ap");qDebug()<<s1;

在这里插入图片描述


http://www.ppmy.cn/news/990171.html

相关文章

信创啊信创。Solon 双同时支持 jakarta.servlet 容器了!

Solon 是个神奇的项目&#xff0c;不是基于 Servlet 的。但是又很支持 Servlet&#xff0c;尤其是 war 包。打起来还挺方便的。 如果你是做信创的&#xff08;听说&#xff0c;很多信创项目是用 war 部署到 tomcat 容器下的&#xff09;。自从 javaee 改包名后&#xff0c;那个…

C++终止cin输入while循环时多读取^Z或^D的问题

原代码&#xff1a; istream& operator>>(istream& is, map<string, int>&mm) {string ss"";int ii0;is >> ss>>ii;mm[ss]ii;return is; }int main() {map<string,int>msi;while(cin>>msi);return 0; } 问题&…

Spring注解的原理

注解&#xff08;Annotation&#xff09;在Java中是一种元数据&#xff0c;它可以为代码提供额外的信息&#xff0c;但本身不会影响程序的执行。在Spring框架中&#xff0c;注解被广泛用于标记组件、配置依赖关系以及进行AOP等操作。我们平时是使用注解的场景有很多,原理却知之…

QGraphicsView实现简易地图1『加载离线瓦片地图』

最简单粗暴的加载方式&#xff0c;将每一层级的所有瓦片地图全部加载 注&#xff1a;该方式仅能够在瓦片地图层级较低时使用&#xff0c;否则卡顿&#xff01;&#xff01;&#xff01; 瓦片地图数据来源&#xff1a;水经注-高德地图-卫星地图 瓦片地图瓦片大小&#xff1a;25…

报数游戏、

描述 有n人围成一圈&#xff0c;顺序排号。从第1个人开始报数&#xff08;从1到3报数&#xff09;&#xff0c;凡报到3的人退出圈子&#xff0c;问最后留下的是原来的第几号的那位。。 输入 初始人数n 输出 最后一人的初始编号 输入样例 1 3 输出样例 1 2 输入样例 …

Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务&#xff0c;有的小伙伴或者童鞋们乍一听可能不信&#xff0c;或者会问如何通过命令行启动appium服务呢&#xff1f;且听一一道来。 一睹为快 其实相当的简单&#xff0c;不看不知道&#xff0c;一看吓一跳&#xf…

SqlServer读写分离对等发布

SqlServer读写分离对等发布: 对等发布支持多主复制。发布服务器将事务流式传输到拓扑中的所有对等方。所有对等节点可以读取和写入更改,且所有更改将传播到拓扑中的所有节点。 注意点: 1.各服务器的数据库名字要保证一样。 2.发布名称必须保持一致。 3.各服务器必须都是…

ChatGPT 实现前一天

提出需求 个人输入需求&#xff1a; Java实现键盘输入日期 输出前一天&#xff0c;需要考虑润年和非润年&#xff0c;2月是否有29号&#xff0c;大月小月的区分等细节处理&#xff0c;不符合的有对应提示&#xff0c;不使用java包里的封装好的类 ChatGPT4分析出的语义&#xff…