一、简介
QTimeZone 标识时间表示与 UTC 的关系,也可以表示 UTC、本地时间和与 UTC 的固定偏移量。
QTimeZone(自 Qt 6.5 起)统一了它们与一般时间系统的表示,大多数操作系统普遍支持的一个时区被指定为本地时间。
总结:简单来说QTimeZone就是qt专门用来解决系统时区和时区偏移问题的类。
二、时间分类
UTC(Coodinated Universal Time),协调世界时,又称世界统一时间、世界标准时间、国际协调时间。它是现在全球通用的时间标准,全球各地都同意将各自的时间进行同步协调。
GMT(Greenwich Mean Time), 格林威治平时(也称格林威治时间)。它规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点。格林威治皇家天文台在十七世纪就开始进行天体观测,选择穿过英国伦敦格林威治天文台子午仪中心的一条经线作为零度参考线,这条线,简称格林威治子午线。
本地时间,这个时间等于我们所在(或者所使用)时区内的当地时间,它由与世界标准时间(UTC)之间的偏移量来定义。这个偏移量可以表示为 UTC- 或 UTC+,后面接上偏移的小时和分钟数。
GMT是世界标准时间,基于英国皇家格林威治天文台的太阳时间,直到1972年被UTC所取代。UTC是当前的世界标准时间,比GMT更精准,以原子时计时,全球使用统一。
三、qt6.5引入常用方法
1、初始化QTimeZone::LocalTime和QTimeZone::UTC
2、以秒为单位,返回固定偏移量的时间表示形式;
QTimeZone QTimeZone::fromDurationAheadOfUtc(std::chrono::seconds offset)
QTimeZone QTimeZone::fromSecondsAheadOfUtc(int offset)
3、将此QTimeZone转换为timeSpec () 为Qt::TimeZone 的对象;
QTimeZone QTimeZone::asBackendZone() const
4、如果是 Qt::UTC or Qt::OffsetFromUTC则返回true;
bool QTimeZone::isUtcOrFixedOffset(Qt::TimeSpec spec)
5、如果是Qt::UTC or Qt::OffsetFromUTC则返回true;
bool QTimeZone::isUtcOrFixedOffset() const