当前位置: 首页 > news >正文

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中时间时区处理总结

最近项目中要做跨国设备时间校正功能&#xff0c;用到了时区时间&#xff0c;在此做一下记录。 目录 1.常见时区名 2.测试代码 3.运行效果 1.常见时区名 "Pacific/Midway": "中途岛 (UTC-11:00)", …...

OpenAtom OpenHarmony三方库创建发布及安全隐私检测

OpenAtom OpenHarmony 三方库&#xff08;以下简称“三方库”或“包”&#xff09;&#xff0c;是经过验证可在 OpenHarmony 系统上可重复使用的软件组件&#xff0c;可帮助开发者快速开发 OpenHarmony 应用。三方库根据其开发语言分为 2 种&#xff0c;一种是使用 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 在使用小程序的时候&#xff0c;需要初始化项目&#xff0c;需要注册Git账号 1.在本地确认cmd没有安装Git,进入Git官网…...

【华为数据之道学习笔记】3-7 报告数据治理

报告数据是指对数据进行处理加工后&#xff0c;用作业务决策依据的数据。它用于支持报告和报表的生成。 用于报告和报表的数据可以分为如下几种。 用于报表项数据生成的事实表、指标数据、维度。 用于报表项统计和计算的统计函数、趋势函数及报告规则。 用于报表和报告展示的…...

SpringDataRedis 操作 Redis,并指定数据序列化器

文章目录 1. SpringDataRedis 概述2. 快速入门2.1 导入pom坐标2.2 配置文件2.3 测试代码2.4 数据序列化器2.5 StringRedisTemplate2.6 总结 1. SpringDataRedis 概述 SpringData 是Spring 中数据操作的模块&#xff0c;包含对各种数据库的集成&#xff0c;其中对Redis的集成模…...

useradd 在Linux原生应用开发过程中的简单应用

useradd命令是用于在Linux系统中创建新用户的命令。它可以创建一个新用户&#xff0c;并设置该用户的属性、家目录、默认shell等。useradd命令实际上是一个包装了一系列系统调用的高级命令。 在Linux系统中&#xff0c;用户信息存储在/etc/passwd文件中。当执行useradd命令时&…...

Linux 删除文件名乱码的文件

现象&#xff1a; 处理&#xff1a; 1.>ls -li 获取文件对应的ID号 2.把删除指定文件&#xff08;ID号 &#xff09;执行&#xff1a; find ./ -inum 268648910 -exec rm {} \;...

【测试人生】数据同步和迁移的变更注意事项

数据同步或者迁移操作也算是线上数据变更的一种类型。由于涉及的数据量非常大&#xff0c;一旦发生故障&#xff0c;会直接影响线上业务&#xff0c;并且较难止损。从变更风险管控的角度考虑&#xff0c;数据同步或迁移操作也需要走合理的发布窗口&#xff0c;并且在操作前也需…...

快手视频如何去掉水印?三个简单好用视频去水印方法

快手视频如何去掉水印&#xff1f;尽管新兴的短视频平台如春笋般涌现&#xff0c;吸引了众多观众在业余时间浏览和分享视频&#xff0c;快手作为当下主流短视频之一&#xff0c;许多自媒体创作者也常常会下载一些热门的视频素材进行二次编辑。然而&#xff0c;他们都可能会面临…...

【Linux】stat命令使用

stat命令 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 著者 由Michael Meskes撰写。 stat命令 -Linux手册页 语法 stat [文件或目录] 命令选项及作用 执行令 &#xff1a; stat --help 执行命令结果 参数 -L、 --dereference 跟…...

【JavaEE】多线程(3) -- 线程等待 wait 和 notify

目录 1. wait()⽅法 2. notify()⽅法 3. notifyAll()⽅法 4. wait 和 sleep 的对⽐&#xff08;⾯试题&#xff09; 由于线程之间是抢占式执⾏的, 因此线程之间执⾏的先后顺序难以预知. 但是实际开发中有时候我们希望合理的协调多个线程之间的执⾏先后顺序. 完成这个协调⼯…...

自行编写一个简单的shell!

本文旨在编写一个简单的shell外壳程序&#xff01;功能类似于shell的一些基本操作&#xff01;虽然不能全部实现shell的一些功能&#xff01;但是通过此文章&#xff0c;自己写一个简单的shell程序也是不成问题&#xff01;并且通过此文章&#xff0c;可以让读者对linux中一些环…...

mvn site 命令

概述 在Maven中&#xff0c;site指的是一个特定的阶段&#xff0c;其目的是生成项目相关的站点文档。这些站点文档可以为项目的开发者、用户、以及其他利益相关者提供有关项目的详细信息。 Maven的站点文档通常包括以下内容&#xff1a; 项目信息&#xff1a;这部分提供了关于…...

<JavaEE> 经典设计模式之 -- 定时器

目录 一、定时器的概念 二、Java 标准库中的定时器 三、实现自己的定时器 一、定时器的概念 什么是定时器&#xff1f;定时器是软件开发中的一个常用且重要组件&#xff0c;作用是在达到设定时间后&#xff0c;执行指定的代码。 二、Java 标准库中的定时器 1&#xff09;T…...

【C++ Primer Plus学习记录】if语句

目录 一、if语句 二、if else语句 三、格式化if else语句 四、if else if else结构 一、if语句 if语句让程序能够决定是否应执行特定的语句。 if有两种格式&#xff1a;if和if else。 if语句的语法与while相似&#xff1a; if(test-condition)statement; 如果test-con…...

结构体,自定义类型

目录 结构体 结构体的声明 结构体的自引用 结构体的定义和初始化 结构体内存对齐 ​编辑 结构体的对齐规则&#xff1a; 为什么存在内存对齐&#xff1f; 修改默认对齐数 结构体传参 位段 什么是位段 位段的内存分配 位段的跨平台问题 枚举 联合&#xff08;共用体…...

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的方式&#xff0…...

老有所依:TSINGSEE青犀养老院智能视频监管方案

养老院智能监控方案是为了提高养老院内老人的安全和护理质量&#xff0c;利用智能技术与监控设备进行全方位的监控和管理&#xff0c;可以加强对老人的监护和护理&#xff0c;提高养老院的服务质量和安全性。 旭帆科技基于视频技术与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]);// 这句代码的作…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...