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]);// 这句代码的作…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...