【qt】一次性讲清楚日期和时间2

简介: 【qt】一次性讲清楚日期和时间

【qt】一次性讲清楚日期和时间1:https://developer.aliyun.com/article/1522994

三.QDateTime类

1.初始化

可以用QTime和QDate来进行初始化!

QTime time(14,21,22);
QDate date(2024,5,15);
QDateTime dt(date,time);
qDebug()<<dt;

运行结果:

2.设置日期时间

接口基本一样,那我就展示一下啦

    time=QTime::currentTime();
    date=QDate::currentDate();
    dt.setDate(date);
    dt.setTime(time);
    qDebug()<<dt;

运行结果:

又暴露我的时间了,刚刚睡醒哈哈!

3.获取当前时间

dt=QDateTime::currentDateTime();
qDebug()<<dt;

运行结果:

4.增加时间

qDebug()<<dt.addDays(10);

运行结果:

5.获取日期和时间

    time=dt.time();
    date=dt.date();
    qDebug()<<time;
    qDebug()<<date;

运行结果:

6.日期时间间隔

qDebug()<<dt1.daysTo(dt);

运行结果:

7.字符串转日期时间

QDateTime dt2=QDateTime::fromString("2024年5月16号9点23分12秒","yyyy年M月dd号h点mm分ss秒");
qDebug()<<dt2;

运行结果:

8.日期时间转字符串

默认的字符串

QString ret=dt1.toString();
qDebug()<<ret;

运行结果:

通过通配符来进行转换

QString ret=dt1.toString("yyyy年M月dd日h点mm分ss秒");
qDebug()<<ret;

运行结果:

四.时间组件

1.综合使用案例

目标效果:

老规矩,先随便拖

说一下这里用到了那些主要组件,主要的,当然是我们这节课学的了。

Time Edit Date Edit DateTime Edit这几个主要的,可以用Group Box来分组。

然后再对组内的组件进行水平布局,然后对整个窗口进行垂直布局

按钮可以设置一个最大距离

可以设置只读模式

对spin box加后缀

可以对Date 和 DateTime组件添加日历


还有记得改名字哦。

接下来开始转到槽:

对获取当前时间按钮的槽函数

void MainWindow::on_pushButton_clicked()
{
    ui->timeEditStart->setTime(QTime::currentTime());
    ui->dateEditStart->setDate(QDate::currentDate());
    ui->dateTimeEditStart->setDateTime(QDateTime::currentDateTime());
}

对3个SpinBox进行转到槽:

void MainWindow::on_spinBoxTime_valueChanged(int arg1)
{
    QTime time=ui->timeEditStart->time();
    time=time.addSecs(arg1*3600);
    ui->timeEditEnd->setTime(time);
}

void MainWindow::on_spinBoxDate_valueChanged(int arg1)
{
    QDate date=ui->dateEditStart->date();
    date=date.addDays(arg1);
    ui->dateEditEnd->setDate(date);
}

void MainWindow::on_spinBoxDateTime_valueChanged(int arg1)
{
    QDateTime dt=ui->dateTimeEditStart->dateTime();
    dt=dt.addDays(arg1);
    ui->dateTimeEditEnd->setDateTime(dt);
}

原理都是,先拿到开始时间,然后增加SpinBox里面的时间值,再设置对应的时间即可。

运行结果:

五.总结

对于时间的处理主要就是QTime QDate QDateTime

这三个的接口又基本相似,我们可以记住一套接口,主要还是根据我们的用法来记忆。

可以看看目录来回忆回忆!

最近确实有点赶了,杂事有点多,静不下来,下次要注意注意。

长风破浪会有时,直挂云帆济沧海

相关文章
|
2月前
|
存储 安全 Unix
C#.Net筑基-类型系统②常见类型--日期和时间的故事
在System命名空间中,有几种表示日期时间的不可变结构体(Struct):DateTime、DateTimeOffset、TimeSpan、DateOnly和TimeOnly。DateTime包含当前本地或UTC时间,以及最小和最大值;DateTimeOffset增加了时区偏移信息,适合跨时区操作。UTC是世界标准时间,而格林尼治标准时间(GMT)不稳定,已被更精确的UTC取代。DateTimeOffset和DateTime提供了转换为UTC和本地时间的方法,以及各种解析和格式化函数。
|
2月前
【qt】一次性讲清楚日期和时间1
【qt】一次性讲清楚日期和时间
25 0
|
存储 Java 程序员
实战:求年月日时间前后遇到的坑和解决方式
这周接到一个时间转换任务需要处理,本来没什么问题,后来完成后发现时间有偏差,又重写了一遍代码,感觉很有记录必要性,希望看过的小伙伴可以避坑。
实战:求年月日时间前后遇到的坑和解决方式
|
12月前
|
JavaScript
uniapp 按时间排序当前以后七天时间
uniapp 按时间排序当前以后七天时间
163 1
|
安全 Java Linux
正确认识及掌握时间的用法
时间是一个相对地区而言的概念,因此有一个基准地区,就是本初子午线穿过的地区。了解世界时间相关的概念可以更好地协调全球人们的活动,便于跨越不同地区的时差。比如按照UTC时区划分算,洛杉矶和北京 之间的时间差异是16个小时, 但是一旦洛杉矶启用了夏令时两者之间的时间差异只有15个小时,神奇吗?
218 0
正确认识及掌握时间的用法
|
前端开发
【React工作记录七十二】时间秒转换为毫秒
【React工作记录七十二】时间秒转换为毫秒
78 0
|
存储 算法 Unix
C++ 日期和时间编程总结
在 C++11 之前,C++ 编程只能使用 C-style 日期时间库,其精度只有秒级别,这对于有高精度要求的程序来说,是不够的。但这个问题在C++11 中得到了解决,C++11 中不仅扩展了对于精度的要求,也为不同系统的时间要求提供了支持。另一方面,对于只能使用 C-style 日期时间库的程序来说,C++17 中也增加了 timespec 将精度提升到了纳秒级别。
335 1
【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
如何确定两个日期之间的工作日有多少天、计算—年中每周内各日期出现次数、确定当前记录和下一条记录之间相差的天数【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本章节的三个需求:确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数有些许难度,不过建议还是学会比较好。
【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
|
数据采集 运维 前端开发
我用三个月时间仿造了一个稿定设计 | 2022年中总结
回想当时我还在做着一些零散的项目需求,这时候领导给了我一个任务,说让我重构一个“在线PS”,我就在这样一个没有产品、没有UI、研发只有1人、开发工时约等于没有的情况下,在追逐竞品的无限挫败感中,勉强完成了第一版的开发。
封装时间戳转具体时间工具
封装时间戳转具体时间工具
129 0
封装时间戳转具体时间工具