Qt获取时区和时间偏移量

77 篇文章 0 订阅
    current_time = QDateTime.currentDateTime()
    current_zone = current_time.timeZone()
    current_zone_id = current_zone.id()
    print(current_zone_id)
    print(current_zone.offsetFromUtc(current_time))
    print(current_zone.standardTimeOffset(current_time))
    print(current_zone.daylightTimeOffset(current_time))
    # 输出如下:
    # b'Asia/Shanghai'
    # 28800
    # 28800
    # 0

    # 如果把Windows下的时区设置为(UTC+02:00)大马士革,会发现屏幕右下角的时间比北京时间只慢了五个钟,输出如下:
    # b'Asia/Damascus'
    # 10800
    # 7200
    # 3600

    # QDateTime和字符串的相互装换
    current_time = QDateTime.currentDateTime()
    str_t = current_time.addSecs(1800).toString("yyyy-MM-dd hh:mm:ss")
    str_t2 = current_time.addSecs(1800).toString("yyyy-MM-dd hh:00:59")
    datetime = QDateTime.fromString(str_t, "yyyy-MM-dd hh:mm:ss")
    print(current_time)
    print(str_t)
    print(str_t2)
    print(datetime)
    # 输出如下:
    # PyQt5.QtCore.QDateTime(2020, 3, 31, 14, 20, 24, 365)
    # 2020-03-31 14:50:24
    # 2020-03-31 14:00:59
    # PyQt5.QtCore.QDateTime(2020, 3, 31, 14, 50, 24)

根据Qt助手里对offsetFromUtc的解释得知,QTimeZone::offsetFromUtc(const QDateTime &atDateTime) 返回给定atDateTime的总有效偏移量,即添加到UTC以获取本地时间的秒数。这包括任何可能有效的DST偏移量,即它是给定日期时间的 standardTimeOffset() 和 daylightTimeOffset() 的总和。

ps:以上测试为Windows上的测试,Mac未测试。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值