QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)_第1页
QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)_第2页
QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)_第3页
QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)_第4页
QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第QT获取显示当前时间和日期的方法(用QTime,QDate和QDateTime)目录获取当前时间和日期QTime类QDate类QDateTime类定时更新显示时间和日期补充:QT中分别获取当前时间的年、月、日总结

获取当前时间和日期

QT中获取时间和日期的主要是QTime、QDate和QDateTime这三个类。

QTime类

通过QTime类中提供的时间相关的方法,可以获取到当前系统时间(时、分、秒、毫秒),需要注意的是,计时的准确性由底层操作系统决定,并不是所有的操作系统都能精确到毫秒级别。

通过调用QTime类中的currentTime()方法可以获取到当前系统时间:

QTimetime=QTime::currentTime();

qDebug()time;

输出结果:

QTime("12:01:13.427")

如果我们需要获取字符串形式的时间,可以使用toString()这个方法:

QTimetime=QTime::currentTime();

qDebug()time.toString("hh:mm:ss");

输出结果:

"12:01:13"

字符串形式的时间输出格式由toString()方法中的format参数列表决定,可用的参数列表如下:

如果我们在显示时间的同时还需要显示上午或下午,可以在格式列表添加添加AP、A、ap、a等选项:

QTimetime=QTime::currentTime();

qDebug()time.toString("hh:mm:ssa");

输出结果:

"02:29:31下午"

当你电脑的系统语言使用中文时,不管格式列表中填AP、A、ap、a这四个选项里的哪一个,都只会显示上午或下午;只有当电脑系统语言使用英文时才会区分大小写,例如选择AP/A,显示AM/PM,选择ap/a,显示am/pm。

hh字段的显示格式受AP/A或ap/a影响,如果格式列表中使用了AP/A或ap/a选项区分上下午,则hh字段采用12小时制格式显示;否则使用24小时制格式显示:

QTimetime=QTime::currentTime();

qDebug()time.toString("hh:mm:ssa");

qDebug()time.toString("hh:mm:ss");

输出结果:

"02:50:38下午"

"14:50:38"

HH字段的显示格式则不受AP/A或ap/a影响,不管格式列表中是否使用AP/A或ap/a选项区分上下午,HH字段均采用24小时制格式显示:

QTimetime=QTime::currentTime();

qDebug()time.toString("HH:mm:ssa");

qDebug()time.toString("HH:mm:ss");

输出结果:

"14:52:03下午"

"14:52:03"

在格式列表中添加t选项可以用来获取时区信息:

QTimetime=QTime::currentTime();

qDebug()time.toString("hh:mm:sst");

输出结果:

"14:59:02中国标准时间"

修改时区后输出结果:

"14:00:45新西伯利亚标准时间"

QDate类

通过调用QDate类中的currentDate()方法可以获取到当前系统日期:

QDatedate=QDate::currentDate();

qDebug()date;

qDebug()date.toString("yyyy-MM-dd");

输出结果:

QDate("2025-04-29")

"2025-04-29"

QDate类中对日期的操作与QTime类中对时间的操作基本一样,需要字符串格式的日期时,使用toString()方法即可,QDate类中对日期操作常用格式如下:

需要显示星期时,使用ddd或dddd选项:

QDatedate=QDate::currentDate();

qDebug()date;

qDebug()date.toString("yyyy-MM-ddddd");

qDebug()date.toString("yyyy-MM-dddddd");

输出结果:

"2025-04-29周五"

"2025-04-29星期五"

QDateTime类

QDateTime类是QDate和QTime的组合,提供一系列时间和日期相关的函数。

通过调用QDateTime类中的currentDateTime()方法可以获取到当前系统时间和日期:

QDateTimedateTime;

dateTime=QDateTime::currentDateTime();

qDebug()dateTime;

qDebug()dateTime.toString("yyyy-MM-ddhh:mm:ssddd");

输出结果:

QDateTime(2025-04-2915:22:23.615中国标准时间Qt::TimeSpec(LocalTime))

"2025-04-2915:22:23周五"

使用toString()方法将时间和日期转换成字符串形式时,格式与QTime、QDate中的格式一样。

定时更新显示时间和日期

创建一个定时器,每秒获取一次系统时间和日期,转换成字符串形式后再通过Label空间显示即可完整代码如下:

main.cpp

#include"dateTime.h"

#includeQApplication

intmain(intargc,char*argv[])

QApplicationa(argc,argv);

DateTimew;

w.show();

returna.exec();

dateTime.h

#ifndefWIDGET_H

#defineWIDGET_H

#includeQWidget

#includeQDateTime

#includeQDebug

#includeQTimer

#includeQLabel

#includeQVBoxLayout

#includeQApplication

classDateTime:publicQWidget

Q_OBJECT

public:

DateTime(QWidget*parent=nullptr);

~DateTime();

voidtimeUpdate(void);

private:

QDateTimedateTime;

QTimer*timer;

QLabel*label;

#endif

dateTime.cpp

#include"dateTime.h"

DateTime::DateTime(QWidget*parent)

:QWidget(parent)

//设置窗口标题和窗口大小

this-setWindowTitle("时间更新显示例程");

this-resize(500,100);

//创建label对象显示时间和日期

label=newQLabel(this);

QVBoxLayout*layout=newQVBoxLayout(this);

layout-addWidget(label);

this-setLayout(layout);

//初始化时间和日期显示

dateTime=QDateTime::currentDateTime();

this-label-setText(dateTime.toString("yyyy-MM-ddhh:mm:ssddd"));

//创建定时器定时更新时间和日期

timer=newQTimer(this);

connect(timer,QTimer::timeout,this,DateTime::timeUpdate);

timer-start(10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论