QDateTime 使用详解

        QDateTime 是 Qt 框架中用于处理日期和时间的类。本篇文章详细介绍、通过示例 快速了解QDateTime的各种操作,包括: 当前时间、获取日期和时间、获取日期、获取时间、获取时间戳、格式化输出、年、月、日、QTime时间、获取微妙、操作日期和时间、添加时间、减去时间、指定时间、比较时间、时区处理、设置时区、查询时区、常用时区、转换时区、有效性等操作

转载请附上文章出处与本文链接。

QDateTime 使用详解目录

1 当前时间

2 获取日期和时间

2.1 获取日期

2.2 获取时间

2.3 获取时间戳

3 格式化输出

3.1 字符串

3.2 年

3.3 月

3.4 日

3.5 其它

4 QTime

4.1 获取年月日

4.2 获取微妙

5 操作日期和时间

5.1 添加时间

5.2 减去时间

5.3 指定时间

6 比较时间

7 时区处理

7.1 设置时区

7.2 查询时区

7.3 常用时区

7.4 转换时区

8 有效性

9 .h源文件

10 .cpp


1 当前时间

	QDateTime currentDateTime = QDateTime::currentDateTime();qDebug() << currentDateTime;	//QDateTime(2024-10-08 01:36:56.886 中国标准时间 Qt::LocalTime)

2 获取日期和时间

2.1 获取日期

	QDate date = currentDateTime.date();qDebug() << date;QDate("2024-10-08")

2.2 获取时间

	QTime time = currentDateTime.time();qDebug() << time;QTime("01:50:30.786")

2.3 获取时间戳

	qint64 timestamp = currentDateTime.toMSecsSinceEpoch();qDebug() << timestamp;1728323430786

3 格式化输出

3.1 字符串

    QString formattedString = currentDateTime.toString("yyyy-MM-dd HH:mm:ss zzz");qDebug() << formattedString;"2024-10-08 01:54:59 638"

3.2 年

	//年formattedString = currentDateTime.toString("yyyy");qDebug() << formattedString;

3.3 月

	//月formattedString = currentDateTime.toString("MM");qDebug() << formattedString;

3.4 日

	//日formattedString = currentDateTime.toString("dd");qDebug() << formattedString;

3.5 其它

// 时、分、秒、毫秒 同上

4 QTime

4.1 获取年月日

	int year = currentDateTime.date().year();   // 获取年份int month = currentDateTime.date().month(); // 获取月份int day = currentDateTime.date().day();     // 获取日期qDebug() << "年:" << year << "月:" << month << "日:" << day;年: 2024 月: 10 日: 8

4.2 获取微妙

	QTime time = currentDateTime.time();int milliseconds = time.msec(); // 获取毫秒int microseconds = milliseconds * 1000; // 转换为微秒qDebug() << "微秒:" << microseconds;微秒: 244000

5 操作日期和时间

5.1 添加时间

	//添加时间:QDateTime futureDateTime = currentDateTime.addDays(5); // 添加5天qDebug() << futureDateTime;QDateTime(2024-10-13 02:07:11.244 中国标准时间 Qt::LocalTime)

5.2 减去时间

	//减去时间:QDateTime pastDateTime = currentDateTime.addMonths(-1); // 减去1个月qDebug() << pastDateTime;QDateTime(2024-09-08 02:07:11.244 中国标准时间 Qt::LocalTime)

5.3 指定时间

	QDateTime specificDateTime(QDate(2023, 10, 1), QTime(12, 30, 0));qDebug() << specificDateTime;	//QDateTime(2023-10-01 12:30:00.000 中国标准时间 Qt::LocalTime)

6 比较时间

	//比较两个 QDateTime 对象:if (currentDateTime < specificDateTime){// currentDateTime 早于 specificDateTime}

7 时区处理

7.1 设置时区

	QTimeZone timeZone("Asia/Shanghai");QDateTime dateTimeInZone = currentDateTime.toTimeZone(timeZone);

7.2 查询时区

    // 获取所有可用的时区 IDQStringList timeZoneIds = QTimeZone::availableTimeZoneIds();// 打印所有时区 IDforeach (const QString &id, timeZoneIds){qDebug() << id;}

7.3 常用时区

UTC:协调世界时Asia/Shanghai:中国标准时间America/New_York:东部标准时间Europe/London:格林威治标准时间Asia/Tokyo:日本标准时间

7.4 转换时区

QDateTime utcDateTime = currentDateTime.toUTC();

8 有效性

	//检查有效性:if (currentDateTime.isValid()){// 当前时间有效}

9 .h源文件

#pragma once#include <QtWidgets/QMainWindow>
#include "ui_QDateTimeTest.h"#include <QDebug>
#include <QDateTime>
#include <QTimeZone>
#pragma execution_character_set("utf-8")
class QDateTimeTest : public QMainWindow
{Q_OBJECTpublic:QDateTimeTest(QWidget *parent = nullptr);~QDateTimeTest();private:Ui::QDateTimeTestClass ui;
};

10 .cpp

#include "QDateTimeTest.h"QDateTimeTest::QDateTimeTest(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);QDateTime currentDateTime = QDateTime::currentDateTime();qDebug() << currentDateTime;	//QDateTime(2024-10-08 01:36:56.886 中国标准时间 Qt::LocalTime)///@ 获取日期和时间qDebug() << "获取日期和时间";//获取日期:QDate date = currentDateTime.date();qDebug() << date;//获取时间:QTime time = currentDateTime.time();qDebug() << time;//获取时间戳:qint64 timestamp = currentDateTime.toMSecsSinceEpoch();qDebug() << timestamp;///@ 格式化输出qDebug() << "格式化输出";//格式化为字符串:QString formattedString = currentDateTime.toString("yyyy-MM-dd HH:mm:ss zzz");qDebug() << formattedString;//年formattedString = currentDateTime.toString("yyyy");qDebug() << formattedString;//月formattedString = currentDateTime.toString("MM");qDebug() << formattedString;//日formattedString = currentDateTime.toString("dd");qDebug() << formattedString;// 时、分、秒、毫秒类似///@ QTimeint year = currentDateTime.date().year();   // 获取年份int month = currentDateTime.date().month(); // 获取月份int day = currentDateTime.date().day();     // 获取日期qDebug() << "年:" << year << "月:" << month << "日:" << day;time = currentDateTime.time();int milliseconds = time.msec(); // 获取毫秒int microseconds = milliseconds * 1000; // 转换为微秒qDebug() << "微秒:" << microseconds;///@ 操作日期和时间qDebug() << "操作日期和时间";//添加时间:QDateTime futureDateTime = currentDateTime.addDays(5); // 添加5天qDebug() << futureDateTime;//减去时间:QDateTime pastDateTime = currentDateTime.addMonths(-1); // 减去1个月qDebug() << pastDateTime;QDateTime specificDateTime(QDate(2023, 10, 1), QTime(12, 30, 0));qDebug() << specificDateTime;	//QDateTime(2023-10-01 12:30:00.000 中国标准时间 Qt::LocalTime)///@ 比较//比较两个 QDateTime 对象:if (currentDateTime < specificDateTime){// currentDateTime 早于 specificDateTime}///@ 时区处理//设置时区:QTimeZone timeZone("Asia/Shanghai");QDateTime dateTimeInZone = currentDateTime.toTimeZone(timeZone);//获取时区:QTimeZone currentZone = currentDateTime.timeZone();///@ 其他方法//检查有效性:if (currentDateTime.isValid()){// 当前时间有效}//转换为 UTC:QDateTime utcDateTime = currentDateTime.toUTC();}QDateTimeTest::~QDateTimeTest()
{}

11 其它文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559420.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

无人机避障——4D毫米波雷达点云滤波去噪(四)

噪声的来源&#xff1a; 对于4D毫米波雷达的前后两帧点云数据进行去噪&#xff0c;可以采用多种方法。首先&#xff0c;需要了解点云数据的噪声来源&#xff0c;可能是由于硬件限制、环境干扰或目标本身的反射特性等因素造成的。噪声点通常包括漂移点、孤立点、冗余点和混杂点…

毕业设计项目——基于RISC-V的标签化跨层调度应用任务管理(论文/代码)

完整的论文代码见文章末尾 以下为核心内容 摘要 在现代操作系统中&#xff0c;高效的系统调度策略对于优化系统性能、提高资源利用率和保证系统稳定性至关重要。本文提出了一个基于Linux进程文件系统&#xff08;procfs&#xff09;的系统监控工具&#xff0c;旨在通过实时收…

Spring Cloud全解析:链路追踪之springCloudSleuth简介

文章目录 springCloudSleuth简介链路追踪&#xff1f;SpringCloudSleuth术语链路示意图zipkin依赖配置 springCloudSleuth简介 链路追踪&#xff1f; 什么是链路追踪&#xff1f;就是将一次分布式请求还原成调用链路&#xff0c;将一次分布式请求的调用情况集中展示&#xff…

算法:1、动态规划算法DP(Dynamic Programming)

算法介绍 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;‌&#xff0c;通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。它的关键思想是对于最终结果依赖前序步骤的问题&#xff0c;将结果定义为状态值dp&#xff0c;然后推导出后续步骤由…

深度学习常见问题

1.YOLOV5和YOLOV8的区别 YOLOv5 和 YOLOv8 是两个版本的 YOLO&#xff08;You Only Look Once&#xff09;目标检测算法&#xff0c;它们在网络架构、性能优化、功能扩展等方面有显著的区别。YOLOv5 是 YOLO 系列的重要改进版本&#xff0c;而 YOLOv8 是最新的一次重大升级&am…

SQL性能优化指南:如何优化MySQL多表join场景

目录 多表join问题SQL 这里解释下 Using join buffer (Block Nested Loop)&#xff1a; 对性能产生的影响&#xff1a; 三种join算法介绍 join操作主要使用以下几种算法&#xff1a; &#xff08;1&#xff09;Nested Loop Join &#xff08;2&#xff09;Block Nested …

搭建企业域名服务器案例

任务要求&#xff1a; 某企业要建立一台应用于以下情况的主域名服务器 拥有一个C类网段地址&#xff0c;为202.101.55.0。企业域名注册为company.com。域名服务器的IP地址定位为202.101.55.55&#xff0c;主机名为dns.company.com。企业网通过路由器与Internet连接。要解析的…

第九届清洁能源与发电技术国际学术会议(CEPGT 2024)

第九届清洁能源与发电技术国际学术会议&#xff08;CEPGT 2024&#xff09; 2024 9th International Conference on Clean Energy and Power Generation Technology (CEPGT 2024) 【早投稿早录用&#xff0c;享受早鸟优惠】 第九届清洁能源与发电技术国际学术会议&#xff0…

记录一个Ajax发送JSON数据的坑,后端RequestBody接收参数小细节?JSON对象和JSON字符串的区别?

上半部分主要介绍我实际出现的问题&#xff0c;最终下面会有总结。 起因&#xff1a;我想发送post请求的data&#xff0c;但是在浏览器中竟然被搞成了地址栏编码 如图前端发送的ajax请求数据 如图发送的请求体&#xff1a; 很明显是keyvalue这种形式&#xff0c;根本就不是…

开源的键鼠共享工具「GitHub 热点速览」

十一长假回来&#xff0c;我的手放在落灰的键盘上都有些陌生了&#xff0c;红轴竟敲出了青轴般的响声&#xff0c;仿佛在诉说对假期结束的不甘。 假期回归的首更&#xff0c;让我们看看又有什么好玩的开源项目冲上了开源热榜。一套键盘和鼠标控制多台电脑的工具 deskflow&#…

supOS加速数实融合发展

作为工业操作系统领军企业&#xff0c;蓝卓受邀参加2024金砖国家新工业革命伙伴关系论坛&#xff0c;深度参与多个环节。在9月11日召开的金砖国家新工业革命伙伴关系论坛产融合作专题研讨上&#xff0c;蓝卓总经理谭彰分享了supOS在产融协同的最新实践&#xff0c;以及supOS进入…

云上考场小程序+ssm论文源码调试讲解

2 关键技术简介 2.1 微信小程序 微信小程序&#xff0c;简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种全新的连接用户与服务的方式&#xff0c;可以快速访问、快速传播&#xff0c;并具有良好的使用体验。 小程序的主要开发语言是JavaScript&#xff0c;它与…

集师知识付费小程序:打造培训机构在线教育的金字招牌 集师知识付费系统 集师知识付费小程序 集师知识服务系统 集师线上培训系统 集师线上卖课小程序

在数字化浪潮的推动下&#xff0c;在线教育已成为教育领域的热门话题。而在众多在线教育平台中&#xff0c;集师知识付费小程序凭借其独特的定位和创新的模式&#xff0c;成功为培训机构打造了一张闪亮的在线教育金字招牌。 集师知识付费小程序&#xff0c;是一个集课程展示、…

数据分析Power BI设置万为单位的数据

玩过Power BI的同学都知道&#xff0c;power BI在度量值设置单位里&#xff0c;唯独没有万这个单位&#xff0c;但是我们可以自定义&#xff0c;操作过程如下&#xff1a; 1.用DAX新建单位表 单位 SELECTCOLUMNS( { ( "元", 1), ("万",10000), ("千…

面试题:Redis(三)

1. 面试题 背景 问题&#xff0c;上面业务逻辑你用java代码如何写&#xff1f; 2. 缓存双写一致性谈谈你的理解&#xff1f; 3. 双检加锁策略 多个线程同时去查询数据库的这条数据&#xff0c;那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。 其他的线程走到这…

进程守护化

文章目录 概念引入ps细节展示什么是进程组什么是会话细节演示有关指令的处理 用户级任务和进程组的关系关系不同 什么是守护进程如何创建守护进程 代码说明如何关闭守护进程 问题 概念引入 我们在之前的章节中已将看过进程相关的概念, 本篇介绍守护进程 进程还有进程组, 作业,…

锐龙7 7800X3D与i7-14700K到底怎么选!其实很简单

从2022年的锐龙7 5800X3D到后来的锐龙7 7800X3D&#xff0c;笔者使用X3D处理器已有2年多的时间。站在自己的立场&#xff0c;我是非常希望游戏老鸟购买这类处理器的&#xff0c;并且也推荐了不少。 这里说的是老鸟&#xff0c;也就是比较懂电脑的玩家。 但是对于新手玩家而言&a…

Kali Linux 下载与安装手册

目录 Kali 是什么&#xff1f; 通过Kali官方网站下载 Kali 是什么&#xff1f; Kali Linux&#xff0c;前称BackTrack&#xff0c;是一个基于Debian的Linux发行版&#xff0c;专为数字取证和渗透测试而设计。它由Offensive Security Ltd.开发和维护&#xff0c;旨在为安全专…

HarmonyOS NEXT应用开发实战(二、封装比UniApp和小程序更简单好用的网络库)

网络访问接口&#xff0c;使用频次最高。之前习惯了uniapp下的网络接口风格&#xff0c;使用起来贼简单方便。转战到鸿蒙上后&#xff0c;原始网络接口写着真累啊&#xff01;目标让鸿蒙上网络接口使用&#xff0c;简单程度比肩uniapp&#xff0c;比Axios更轻量级。源码量也不多…

【Parsec】一款安全高效的远程桌面软件

Parsec 是一款远程桌面软件&#xff0c;它允许用户通过P2P&#xff08;点对点&#xff09;技术远程访问和控制另一台计算机。以下是Parsec的一些主要作用、安全私密性特点以及优缺点&#xff1a; 作用&#xff1a; 远程游戏&#xff1a;用户可以远程访问高性能PC进行游戏&am…