You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide QDateTime转字符串格式疑问:是否不支持6位微秒格式?

QDateTime是否支持微秒(小数点后六位)格式?

问题描述

我测试了以下代码:

utc_fmt = "yyyy/MM/dd hh:mm:ss.zzzzzz"
new_date = QDateTime().fromString("2023/01/01 20:19:18.171123", utc_fmt)
debug = new_date.toString("yyyy/MM/dd hh:mm:ss.zzzzzz")
print("time:"+debug)

转换失败了。但把格式改为小数点后三位(zzz)后,转换成功:

utc_fmt = "yyyy/MM/dd hh:mm:ss.zzz"
#...
debug = new_date.toString("yyyy/MM/dd hh:mm:ss.zzz")

这是不是意味着QDateTime不支持ss.zzzzzz(微秒,六位小数)的格式?

解答

  • Qt的QDateTime中,z占位符仅对应毫秒级精度,最多支持三位(zzz),对应000-999的毫秒数值,用六位zzzzzz会导致解析失败。
  • 若要处理微秒(小数点后六位),需使用u占位符,正确格式应为ss.uuuuuu。
  • 修正后的测试代码:
utc_fmt = "yyyy/MM/dd hh:mm:ss.uuuuuu"
new_date = QDateTime().fromString("2023/01/01 20:19:18.171123", utc_fmt)
debug = new_date.toString("yyyy/MM/dd hh:mm:ss.uuuuuu")
print("time:"+debug)
  • 补充:QDateTime本身支持存储微秒级时间,只是解析和格式化时必须使用匹配的占位符,混淆z(毫秒)和u(微秒)才会出现转换失败的情况。

内容的提问来源于stack exchange,提问作者Rui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:57:48