获取当前日期和时间是我们日常开发中经常遇到的。下面主要介绍QT获取并显示当前时间和日期的相关信息。通过示例代码非常详细的介绍,有需要的朋友可以参考一下。
目录
获取当前时间和日期QTime类QDate类QDateTime类定时更新显示时间和日期补充:获取QT中当前时间的年、月、日汇总。
获取当前时间和日期
在QT中,获取时间和日期的三个类是QTime、qtate和QDateTime。
QTime 类
当前系统时间(小时、分钟、秒、毫秒)可以通过QTime类中提供的与时间相关的方法获得。需要注意的是,计时的精度是由底层操作系统决定的,并不是所有的操作系统都能精确到毫秒级。
您可以通过调用QTime类中的currentTime()方法来获取当前系统时间:
q time time=q time:current time();
qDebug()时间;
输出结果:
QTime('12:01:13.427 ')
如果我们需要获得字符串形式的时间,我们可以使用这个方法toString():
q time time=q time:current time();
qDebug()time . tostring(' hh:mm:ss ');
输出结果:
'12:01:13'
字符串形式的时间输出格式由toString()方法中的格式参数列表决定。可用的参数列表如下:
如果我们需要在显示时间的同时显示上午或下午,我们可以在格式列表中添加“ap,A,AP,A”等选项:
q time time=q time:current time();
qDebug()time . tostring(' hh:mm:ss a ');
输出结果:
下午2点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小时格式显示:
q time time=q time:current time();
qDebug()time . tostring(' hh:mm:ss a ');
qDebug()time . tostring(' hh:mm:ss ');
输出结果:
下午2点50分38秒
'14:50:38'
HH字段的显示格式不受ap/a或AP/A的影响,无论格式列表中使用AP/A还是AP/A选项来区分上午和下午,HH字段都以24小时格式显示:
q time time=q time:current time();
qDebug()time . tostring(' HH:mm:ss a ');
qDebug()time . tostring(' HH:mm:ss ');
输出结果:
下午14点52分03秒
'14:52:03'
将T选项添加到格式列表可用于获取时区信息:
q time time=q time:current time();
qDebug()time . tostring(' hh:mm:ss t ');
输出结果:
'中国标准时间14:59:02 '
修改时区后的输出结果:
新西伯利亚标准时间14:00:45 '
QDate类
您可以通过调用QDate类中的currentDate()方法来获取当前系统日期:
q date date=q date:current date();
qDebug()日期;
qDebug()date . tostring(' yyyy-MM-DD ');
输出结果:
日期(' 2022年4月29日')
'2022-04-29'
Q类中date的操作和QTime类中time的操作基本相同。当需要字符串格式的日期时,可以使用toString()方法。QDate类中日期操作的常见格式如下:
当需要星期几时,使用ddd或dddd选项:
q date date=q date:current date();
qDebug()日期;
qDebug()date . tostring(' yyyy-MM-DD DDD ');
qDebug()date . tostring(' yyyy-MM-DD dddd ');
输出结果:
2022年4月29日星期五
2022年4月29日星期五
QDateTime类
QDateTime类是QDate和QTime的组合,提供了一系列与时间和日期相关的函数。
您可以通过调用QDateTime类中的currentDateTime()方法来获取当前的系统时间和日期:
QDateTime日期时间;
dateTime=QDateTime:current dateTime();
qDebug()日期时间;
qDebug()datetime . tostring(' yyyy-MM-DD hh:MM:ss DDD ');
输出结果:
QdateTime(2022-04-29 15:22:23.615中国标准时间Qt:TimeSpec(LocalTime))
2022年4月29日星期五15时22分23秒
使用toString()方法将时间和日期转换成字符串形式时,格式与QTime、QDate中的格式一样。
定时更新显示时间和日期
创建一个定时器,每秒获取一次系统时间和日期,转换成字符串形式后再通过标签空间显示即可完整代码如下:
主页面
#include 'dateTime.h '
#包括q应用
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
日期时间w;
w。show();
返回a . exec();
}
日期时间。h
#ifndef WIDGET_H
#定义WIDGET_H
#包含QWidget
#包含QDateTime
#包含QDebug
#包含QTimer
#包括QLabel
#包含QVBoxLayout
#包括q应用
类DateTime:公共QWidget
{
q _对象
公共:
DateTime(q widget * parent=nullptr);
~ DateTime();
void时间更新(void);
私人:
QDateTime日期时间;
QTimer *定时器;
QLabel *标签;
};
#endif
日期时间。卡片打印处理机(Card Print Processor的缩写)
#include 'dateTime.h '
DateTime:DateTime(q widget * parent)
:QWidget(父级)
{
//设置窗口标题和窗口大小
this-setWindowTitle('时间更新显示例程');
this-resize(500,100);
//创建标签对象显示时间和日期
label=新的QLabel(这个);
QVBoxLayout * layout=new QVBoxLayout(this);
布局-添加小部件(标签);
this-setLayout(布局);
//初始化时间和日期显示
dateTime=QDateTime:current dateTime();
this-label-setText(日期时间。tostring(' yyyy-MM-DD hh:MM:ss DDD ');
//创建定时器定时更新时间和日期
timer=新的QTimer(这个);
connect(timer,QTimer:timeout,this,DateTime:time update);
计时器启动(1000);
}
日期时间:~日期时间()
{
删除计时器;
}
void DateTime:timeUpdate(void)
{
dateTime=QDateTime:current dateTime();
this-label-setText(日期时间。tostring(' yyyy-MM-DD hh:MM:ss DDD ');
}
补充:QT中分别获取当前时间的年、月、日
百度查了半天,没找到,就自己写了一个测试,其实也很简单,先用QDate去获取当前的时间,时间格式设置为'年-月-日,也就是'年-月-日'的格式,然后再利用字符串切割(strtok函数)去切割成独立的年、月、日就好啦,代码如下(适合懒人一族,直接复制粘贴,哈哈^ _ ^)
q date当前日期=q date:当前日期();
QString str 1=当前日期。tostring(' yyyy-MM-DD ');
qDebug()' str 1=' str 1;
QByteArray ba=str 1。to Latin 1();//将QString转换为字符*类型
char * dateStr=ba。data();//将QString转换为字符*类型
char *year=strtok(dateStr,'-');
char *month=strtok(NULL,'-');
char *date=strtok(NULL,'-');
" qDebug()"年份是:“年;
" qDebug()"月是:"月;
" qDebug()"日期是:“日期;
运行结果如下:
总结
到此这篇关于夸脱获取显示当前时间和日期的文章就介绍到这了,更多相关夸脱获取显示当前时间日期内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。