QT中时间时区处理总结
最近项目中要做跨国设备时间校正功能,用到了时区时间,在此做一下记录。
目录
1.常见时区名
2.测试代码
3.运行效果
1.常见时区名
"Pacific/Midway": "中途岛 (UTC-11:00)",
"Pacific/Honolulu": "檀香山 (UTC-10:00)",
"America/Anchorage": "安克雷奇 (UTC-08:00)",
"America/Los_Angeles": "洛杉矶/美国太平洋 (UTC-07:00)",
"America/Tijuana": "提华纳/美国太平洋 (UTC-07:00)",
"America/Phoenix": "凤凰城美国山区 (UTC-07:00)",
"America/Chihuahua": "奇瓦瓦 (UTC-06:00)",
"America/Denver": "丹佛/美国山区 (UTC-06:00)",
"America/Costa_Rica": "哥斯达黎加/美国中部 (UTC-06:00)",
"America/Regina": "里贾纳/美国中部 (UTC-06:00)",
"America/Mexico_City": "墨西哥城/美国中部 (UTC-05:00)",
"America/Chicago": "芝加哥/美国中部 (UTC-05:00)",
"America/Bogota": "波哥大/哥伦比亚 (UTC-05:00)",
"America/New_York": "纽约/美国东部 (UTC-04:00)",
"America/Caracas": "加拉加斯/委内瑞拉 (UTC-04:30)",
"America/Barbados": "巴巴多斯/大西洋 (UTC-04:00)",
"America/Manaus": "马瑙斯/亚马逊 (UTC-04:00)",
"America/Santiago": "圣地亚哥 (UTC-03:00)",
"America/Sao_Paulo": "圣保罗 (UTC-03:00)",
"America/St_Johns": "圣约翰/纽芬兰 (UTC-04:00)",
"America/Montevideo": "蒙得维的亚/乌拉圭 (UTC-03:00)",
"America/Godthab": "戈特霍布 (UTC-02:00)",
"Atlantic/South_Georgia": "南乔治亚 (UTC-02:00)",
"Atlantic/Cape_Verde": "佛得角 (UTC-01:00)",
"Atlantic/Azores": "亚述尔群岛 (UTC+00:00)",
"Africa/Casablanca": "卡萨布兰卡 (UTC+00:00)",
"Europe/London": "伦敦/格林尼治 (UTC+00:00)",
"Africa/Brazzaville": "布拉扎维/西部非洲 (UTC+01:00)",
"Africa/Windhoek": "温得和克 (UTC+01:00)",
"Europe/Amsterdam": "阿姆斯特丹/中欧 (UTC+02:00)",
"Europe/Belgrade": "贝尔格莱德/中欧 (UTC+02:00)",
"Europe/Brussels": "布鲁塞尔/中欧 (UTC+02:00)",
"Europe/Sarajevo": "萨拉热窝/中欧 (UTC+02:00)",
"Africa/Harare": "哈拉雷/中部非洲 (UTC+02:00)",
"Africa/Cairo": "开罗/东欧 (UTC+02:00)",
"Asia/Beirut": "贝鲁特/东欧 (UTC+03:00)",
"Europe/Athens": "雅典/东欧 (UTC+03:00)",
"Europe/Helsinki": "赫尔辛基/东欧 (UTC+03:00)",
"Asia/Jerusalem": "耶路撒冷/以色列 (UTC+03:00)",
"Asia/Amman": "安曼/东欧 (UTC+03:00)",
"Europe/Minsk": "明斯克 (UTC+03:00)",
"Asia/Baghdad": "巴格达 (UTC+03:00)",
"Europe/Moscow": "莫斯科 (UTC+03:00)",
"Asia/Kuwait": "科威特 (UTC+03:00)",
"Africa/Nairobi": "内罗毕/东部非洲 (UTC+03:00)",
"Asia/Baku": "巴库 (UTC+05:00)",
"Asia/Tbilisi": "第比利斯 (UTC+04:00)",
"Asia/Yerevan": "埃里温 (UTC+04:00)",
"Asia/Dubai": "迪拜 (UTC+04:00)",
"Asia/Tehran": "德黑兰/伊朗 (UTC+04:30)",
"Asia/Kabul": "喀布尔/阿富汗 (UTC+04:30)",
"Asia/Karachi": "卡拉奇 (UTC+05:00)",
"Asia/Oral": "乌拉尔 (UTC+05:00)",
"Asia/Yekaterinburg": "叶卡捷林堡 (UTC+05:00)",
"Asia/Colombo": "科伦坡 (UTC+05:30)",
"Asia/Almaty": "阿拉木图 (UTC+06:00)",
"Asia/Krasnoyarsk": "克拉斯诺亚尔斯克 (UTC+07:00)",
"Asia/Bangkok": "曼谷 (UTC+07:00)",
"Asia/Shanghai": "北京/中国 (UTC+08:00)",
"Asia/Hong_Kong": "香港/中国 (UTC+08:00)",
"Asia/Irkutsk": "伊尔库茨克 (UTC+08:00)",
"Asia/Kuala_Lumpur": "吉隆坡 (UTC+08:00)",
"Australia/Perth": "佩思 (UTC+08:00)",
"Asia/Taipei": "台北时间 (UTC+08:00)",
"Asia/Seoul": "首尔 (UTC+09:00)",
"Asia/Tokyo": "东京/日本 (UTC+09:00)",
"Asia/Yakutsk": "雅库茨克 (UTC+09:00)",
"Australia/Adelaide": "阿德莱德 (UTC+09:30)",
"Australia/Darwin": "达尔文 (UTC+09:30)",
"Australia/Brisbane": "布里斯班 (UTC+10:00)",
"Australia/Hobart": "霍巴特 (UTC+10:00)",
"Australia/Sydney": "悉尼 (UTC+10:00)",
"Asia/Vladivostok": "符拉迪沃斯托克/海参崴 (UTC+10:00)",
"Pacific/Guam": "关岛 (UTC+10:00)",
"Asia/Magadan": "马加丹 (UTC+10:00)",
"Pacific/Majuro": "马朱罗 (UTC+12:00)",
"Pacific/Auckland": "奥克兰 (UTC+12:00)",
"Pacific/Fiji": "斐济 (UTC+12:00)",
"Pacific/Tongatapu": "东加塔布 (UTC+13:00)",
"America/Halifax": "哈利法克斯 (GMT-03:00)",
"Asia/Jakarta": "雅加达 (GMT+07:00)",
"America/Argentina/Buenos_Aires": "布宜诺斯艾利斯 (UTC-03:00)",
"Asia/Kolkata": "亚洲/加尔各答 (GMT+05:30)",
"Asia/Kathmandu": "加德满都 (GMT+05:45)",
"Asia/Yangon": "仰光(GMT+06:30)",
"Pacific/Noumea": "努美亚 (GMT+11:00)",
"Etc/UTC": "Etc/UTC (GMT+00:00)",
"America/Recife": "累西腓 (GMT-03:00)",
"Europe/Madrid": "马德里 (GMT+01:00)",
"Europe/Istanbul": "伊斯坦布尔 (GMT+03:00)"
2.测试代码
#include <QCoreApplication>
#include <QDateTime>
#include <QTimezone>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 获取当前时间QDateTime curDateTime = QDateTime :: currentDateTime();qDebug() << curDateTime.toString("yyyy-MM-dd")<< curDateTime.toString("yyyy-MM-dd hh:mm:ss")<< curDateTime.toString("hh:mm:ss");// 使用指定日期和时间创建QDateTime customDateTime(QDate(2023, 12, 8), QTime(22, 56, 0));qDebug() << customDateTime.toString("yyyy-MM-dd hh:mm:ss");// 从QDateTime中分别得到QDate和QTimeQDate date = curDateTime.date();QTime ctime = curDateTime.time();curDateTime.setDate(QDate(2023, 12, 9));curDateTime.setTime(QTime(23, 30, 0));qDebug() << curDateTime.toString("yyyy-MM-dd hh:mm:ss");qDebug() << curDateTime.toString(Qt::ISODate);// 根据当前日期时间获取特定时区的当前日期时间QDateTime tokyoDateTime = QDateTime::currentDateTime().toTimeZone(QTimeZone("Asia/Tokyo"));qDebug() << tokyoDateTime.toString("yyyy-MM-dd hh:mm:ss");// 字符串日期到时间QString strDateTime = "2013-12-08 23:17:50";qDebug() << "str datetime to datetime "<< QDateTime::fromString(strDateTime, "yyyy-MM-dd hh:mm:ss").toString("yyyy-MM-dd hh:mm:ss");// 枚举时区/*int size = QTimeZone::availableTimeZoneIds().size();for (int i = 0; i < size; i++) {qDebug() << QTimeZone::availableTimeZoneIds().at(i);}*/// 当前时间转UTC时间戳,秒,毫秒quint64 msecons = QDateTime::currentDateTime().toMSecsSinceEpoch();qDebug() << msecons;qDebug() << QDateTime::currentDateTime().toUTC().toMSecsSinceEpoch();qDebug() << QDateTime::currentDateTimeUtc().toMSecsSinceEpoch();qDebug() << QDateTime::currentDateTime().toSecsSinceEpoch()<< QDateTime::currentDateTime().toUTC().toSecsSinceEpoch();// 根据毫秒时间戳恢复到当前时时间qDebug() << QDateTime::fromMSecsSinceEpoch(msecons, Qt::LocalTime).toString("yyyy-MM-dd hh:mm:ss");// 不管那个时区,UTC时间戳都是一样的qDebug() << QDateTime::currentDateTime().toTimeZone(QTimeZone("Asia/Tokyo")).toMSecsSinceEpoch()<< QDateTime::currentDateTime().toMSecsSinceEpoch();// 指定时区得到时间qDebug() << QDateTime::fromMSecsSinceEpoch(QDateTime::currentDateTime().toTimeZone(QTimeZone("Asia/Tokyo")).toMSecsSinceEpoch(),QTimeZone("Asia/Tokyo")).toString("yyyy-MM-dd hh:mm:ss");return a.exec();
}
3.运行效果

相关文章:
QT中时间时区处理总结
最近项目中要做跨国设备时间校正功能,用到了时区时间,在此做一下记录。 目录 1.常见时区名 2.测试代码 3.运行效果 1.常见时区名 "Pacific/Midway": "中途岛 (UTC-11:00)", …...
OpenAtom OpenHarmony三方库创建发布及安全隐私检测
OpenAtom OpenHarmony 三方库(以下简称“三方库”或“包”),是经过验证可在 OpenHarmony 系统上可重复使用的软件组件,可帮助开发者快速开发 OpenHarmony 应用。三方库根据其开发语言分为 2 种,一种是使用 JavaScript …...
【1】一文读懂PyQt简介和环境搭建
目录 1. PyQt简介 1.1. Qt 1.2. PyQt 1.3. 关于PyQt和PySide 2. 通过pip安装PyQt5 3. 无法运行处理 4. VSCode配置PYQT插件 PyQt官网:Riverbank Computing | Introduction 1. PyQt简介 PyQt是一套Python的GUI开发框架,即图形用户界面开发框架。 Python中经常使用的GU…...
windows install git
refer: https://developers.weixin.qq.com/miniprogram/dev/devtools/wechatvcs.html https://blog.csdn.net/weixin_40228200/article/details/128451324 在使用小程序的时候,需要初始化项目,需要注册Git账号 1.在本地确认cmd没有安装Git,进入Git官网…...
【华为数据之道学习笔记】3-7 报告数据治理
报告数据是指对数据进行处理加工后,用作业务决策依据的数据。它用于支持报告和报表的生成。 用于报告和报表的数据可以分为如下几种。 用于报表项数据生成的事实表、指标数据、维度。 用于报表项统计和计算的统计函数、趋势函数及报告规则。 用于报表和报告展示的…...
SpringDataRedis 操作 Redis,并指定数据序列化器
文章目录 1. SpringDataRedis 概述2. 快速入门2.1 导入pom坐标2.2 配置文件2.3 测试代码2.4 数据序列化器2.5 StringRedisTemplate2.6 总结 1. SpringDataRedis 概述 SpringData 是Spring 中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模…...
useradd 在Linux原生应用开发过程中的简单应用
useradd命令是用于在Linux系统中创建新用户的命令。它可以创建一个新用户,并设置该用户的属性、家目录、默认shell等。useradd命令实际上是一个包装了一系列系统调用的高级命令。 在Linux系统中,用户信息存储在/etc/passwd文件中。当执行useradd命令时&…...
Linux 删除文件名乱码的文件
现象: 处理: 1.>ls -li 获取文件对应的ID号 2.把删除指定文件(ID号 )执行: find ./ -inum 268648910 -exec rm {} \;...
【测试人生】数据同步和迁移的变更注意事项
数据同步或者迁移操作也算是线上数据变更的一种类型。由于涉及的数据量非常大,一旦发生故障,会直接影响线上业务,并且较难止损。从变更风险管控的角度考虑,数据同步或迁移操作也需要走合理的发布窗口,并且在操作前也需…...
快手视频如何去掉水印?三个简单好用视频去水印方法
快手视频如何去掉水印?尽管新兴的短视频平台如春笋般涌现,吸引了众多观众在业余时间浏览和分享视频,快手作为当下主流短视频之一,许多自媒体创作者也常常会下载一些热门的视频素材进行二次编辑。然而,他们都可能会面临…...
【Linux】stat命令使用
stat命令 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 著者 由Michael Meskes撰写。 stat命令 -Linux手册页 语法 stat [文件或目录] 命令选项及作用 执行令 : stat --help 执行命令结果 参数 -L、 --dereference 跟…...
【JavaEE】多线程(3) -- 线程等待 wait 和 notify
目录 1. wait()⽅法 2. notify()⽅法 3. notifyAll()⽅法 4. wait 和 sleep 的对⽐(⾯试题) 由于线程之间是抢占式执⾏的, 因此线程之间执⾏的先后顺序难以预知. 但是实际开发中有时候我们希望合理的协调多个线程之间的执⾏先后顺序. 完成这个协调⼯…...
自行编写一个简单的shell!
本文旨在编写一个简单的shell外壳程序!功能类似于shell的一些基本操作!虽然不能全部实现shell的一些功能!但是通过此文章,自己写一个简单的shell程序也是不成问题!并且通过此文章,可以让读者对linux中一些环…...
mvn site 命令
概述 在Maven中,site指的是一个特定的阶段,其目的是生成项目相关的站点文档。这些站点文档可以为项目的开发者、用户、以及其他利益相关者提供有关项目的详细信息。 Maven的站点文档通常包括以下内容: 项目信息:这部分提供了关于…...
<JavaEE> 经典设计模式之 -- 定时器
目录 一、定时器的概念 二、Java 标准库中的定时器 三、实现自己的定时器 一、定时器的概念 什么是定时器?定时器是软件开发中的一个常用且重要组件,作用是在达到设定时间后,执行指定的代码。 二、Java 标准库中的定时器 1)T…...
【C++ Primer Plus学习记录】if语句
目录 一、if语句 二、if else语句 三、格式化if else语句 四、if else if else结构 一、if语句 if语句让程序能够决定是否应执行特定的语句。 if有两种格式:if和if else。 if语句的语法与while相似: if(test-condition)statement; 如果test-con…...
结构体,自定义类型
目录 结构体 结构体的声明 结构体的自引用 结构体的定义和初始化 结构体内存对齐 编辑 结构体的对齐规则: 为什么存在内存对齐? 修改默认对齐数 结构体传参 位段 什么是位段 位段的内存分配 位段的跨平台问题 枚举 联合(共用体…...
Ubuntu22.04通过Maas和Juju部署openstack charm
目录 官方文档材料准备软件硬件 模板机和虚拟网络安装MAAS官方文档MAAS节点配置安装MAAS浏览器登录MAAS进行配置 激活DHCP 官方文档 https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/2023.1/ 这是一个通过Maas面板即可部署openstack的方式࿰…...
老有所依:TSINGSEE青犀养老院智能视频监管方案
养老院智能监控方案是为了提高养老院内老人的安全和护理质量,利用智能技术与监控设备进行全方位的监控和管理,可以加强对老人的监护和护理,提高养老院的服务质量和安全性。 旭帆科技基于视频技术与AI智能分析技术构建的养老院智能视频监控方…...
vue中的this.$nextTick().then()
MENU 示例一示例二sortsplicepushrandomfloorMathwhile演示 示例一 let reorganize function (arr){let rest [];while (arr.length > 0) {let random Math.floor(Math.random() * arr.length);// 把获取到的值放到新定义的数组中rest.push(arr[random]);// 这句代码的作…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
