pyqt时间显示格式


在Qt的 QDateTime.toString()方法中,日期和时间格式字符串遵循特定的规则,其中 大小写是有严格区分的。具体来说:

  • MM 代表月份(1-12),必须使用大写M。
  • mm 代表分钟(0-59),必须使用小写m。

如果混淆使用,会导致时间格式错误。例如:

  • yyyy-mm-dd 会错误地将月份显示为分钟数(因为小写m被解析为分钟)
  • yyyy-MM-dd 才是正确显示年份、月份、日期的格式

详细格式说明

以下是常用的日期时间格式字符及其含义:

格式字符描述示例
yyyy四位数年份2025
yy两位数年份25
MM月份(01-12)06
M月份(1-12,无前导零)6
dd日期(01-31)22
d日期(1-31,无前导零)22
HH小时(00-23,24小时制)15
hh小时(01-12,12小时制)03(如果是下午3点)
mm分钟(00-59)42
ss秒(00-59)30
zzz毫秒(000-999)123
APA上午/下午标记(AM/PM)PM
apa上午/下午标记(am/pm)pm

示例对比

以下代码展示大小写不同导致的差异:

from PyQt5.QtCore import QDateTime

now = QDateTime.currentDateTime()

print(now.toString("yyyy-MM-dd HH:mm:ss"))  # 正确: 2025-06-22 15:42:30
print(now.toString("yyyy-mm-dd HH:MM:ss"))  # 错误: 2025-42-22 15:06:30

为什么Qt要这样设计?

这种大小写区分的设计是为了避免歧义。例如:

  • 月份(Month)和分钟(Minute)都以字母M开头
  • 小时在12小时制(Hour)和24小时制(Hour)下需要不同表示

通过大小写区分,Qt能够明确解析每个格式字符的含义,确保日期时间正确格式化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值