class QTime#

QTime 类提供时钟时间功能。更多...

概要#

方法#

静态函数#

注意

本文档可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。

详细说明#

QTime对象包含一个时钟时间,它可以表达自午夜以来的小时、分钟、秒和毫秒数。它提供比较时间并通过添加一定数量的毫秒来操作时间的函数。QTime对象应通过值而不是引用传递到const;它们只是封装了int

QTime 使用24小时制;它没有AM/PM的概念。与 QDateTime 不同,QTime 对时区和夏令时(DST)一无所知。

QTime 对象通常通过显式提供小时数、分钟数、秒数和毫秒数来创建,或者使用静态函数 currentTime() 来创建,后者创建一个表示系统本地时间的 QTime 对象。

hour()minute()second()msec() 函数提供对时间的小时数、分钟数、秒数和毫秒数的访问。相同的信 息可以通过 toString() 函数以文本格式提供。

addSecs()addMSecs() 函数提供了比指定时间晚给定秒数或毫秒数的时间。相应地,可以使用 secsTo()msecsTo() 来找到两个时间之间的秒数或毫秒数。

QTime 为比较两个 QTime 对象提供了一套完整的操作符;较早的时间被视为较小的时间;如果 A. msecsTo (B) 为正,则 A < B。

QTime 对象还可以使用 fromString() 从文本表示形式创建,使用 toString() 转换为字符串表示形式。所有转换为字符串和从字符串转换的操作都使用C区域设置。有关本地化转换,请参阅 QLocale

另请参阅

QDate QDateTime

class TimeFlag#
__init__(h, m[, s=0[, ms=0]])#
参数:
  • h – int

  • m – int

  • s – int

  • ms – int

创建一个具有小时 h、分钟 m、秒 s 和毫秒 ms 的时间对象。

h 必须在 0 到 23 之间,ms 必须在 0 到 59 之间,ms 必须在 0 到 999 之间。

另请参阅

isValid()

__init__()

创建一个空的时间对象。对于空时间,isNull() 返回 trueisValid() 返回 false。如果您需要一个零时间,请使用 QTime (0, 0)。关于一天的开始,请参阅 startOfDay()

另请参阅

isNull() isValid()

__reduce__()#
返回类型:

object

__repr__()#
返回类型:

object

addMSecs(ms)#
参数:

ms – int

返回类型:

时间Q

返回一个 QTime 对象,包含比此对象时间晚 ms 毫秒的时间(如果 ms 是负数则更早)。

注意,如果时间超过午夜,时间将会回绕。请参见 addSecs() 以获取示例。

如果此时间无效,则返回一个空时间。

addSecs(secs)#
参数:

secs – int

返回类型:

时间Q

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。

返回一个包含比此对象时间晚 s 秒的时间的新的 QTime 对象(如果 s 为负数,则时间会更早)。

请注意,如果时间超过午夜,时间将会回卷。

如果此时间无效,则返回一个空时间。

示例

QTime n(14, 0, 0) # n == 14:00:00
t = QTime()
t = n.addSecs(70) # t == 14:01:10
t = n.addSecs(-70) # t == 13:58:50
t = n.addSecs(10 * 60 * 60 + 5) # t == 00:00:05
t = n.addSecs(-15 * 60 * 60) # t == 23:00:00
静态 currentTime()#
返回类型:

时间Q

返回系统时钟报告的当前时间。

请注意,准确性取决于底层操作系统的准确性;并非所有系统都提供 1 毫秒的精度。

此外,currentTime() 仅在每个白天内增加;每当午夜通过时,它应该减少 24 小时;并且在除了这一点外,如果发生夏令时转换,它可能不会对应过去的时间。

静态 fromMSecsSinceStartOfDay(msecs)#
参数:

msecs – int

返回类型:

时间Q

返回一个新的 QTime 实例,其中设置为从当天开始(即 00:00:00)以来的毫秒数。

如果 msecs 超出有效范围,则返回一个无效的 QTime

另请参阅

msecsSinceStartOfDay()

静态 fromString(字符串, 格式)#
参数:
  • 字符串 – str

  • 格式 – str

返回类型:

时间Q

这是重载函数。

静态 fromString(字符串[, 格式=Qt.TextDate])
参数:
返回类型:

时间Q

这是重载函数。

静态 fromString(字符串, 格式)
参数:
  • 字符串 – str

  • 格式 – str

返回类型:

时间Q

这是重载函数。

静态 fromString(字符串[, 格式=Qt.TextDate])
参数:
返回类型:

时间Q

返回字符串中表示的时间作为 QTime,使用给定的格式,或者不可用时间(无效时间)。

另请参阅

toString() toTime()

静态 fromString(字符串, 格式)
参数:
  • 字符串 – str

  • 格式 – str

返回类型:

时间Q

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。

返回由字符串表示的时间 QTime,使用给定的格式,或者无法解析的字符串时无效时间。

以下表达式可用于格式

表达式

输出

h

不带前导零的小时(0到23或AM/PM显示时的1到12)

hh

带前导零的小时(00到23或AM/PM显示时的01到12)

H

不带前导零的小时(0到23,即使有AM/PM显示)

HH

带前导零的小时(00到23,即使有AM/PM显示)

m

不带前导零的分钟(0到59)

mm

带前导零的分钟(00到59)

s

整个秒数,不带有任何前导零(0到59)

ss

整个秒数,是否需要前导零(00到59)

z或zz

秒的分数部分,通常随小数点后,不要求尾部零(0到999)。因此 "s.z" 匹配最多三位分数部分的秒数,提供毫秒级精度,不需要尾部零。例如,"s.z" 将识别 "00.250""0.25" 作为代表其分钟四分之一秒的时间。

zzz

到毫秒精度的秒的三位数字分数部分,包括适用于情况的前导零(000到999)。例如,"ss.zzz" 将拒绝 "0.25" 但识别 "00.250" 作为代表其分钟四分之一秒的时间。

AP, A, ap, a, aP 或 Ap

可以是表示中午12:00之前时间的“AM”,或者表示晚于中午12:00时间的“PM”,不区分大小写。

所有其他输入字符都将被当作文本处理。任何被单引号括起来的非空字符序列(去除引号后)也将被当作文本处理,而不是当作表达式。

time = QTime.fromString("1mm12car00", "m'mm'hcarss")
# time is 12:01.00

如果格式不满足要求,将返回一个无效的 QTime 对象。那些不需要提供前导零的表达式(h, m, s和z)是贪婪的。这意味着,即使它们放置在可接受值范围之外,它们也会使用两位数(或者对于z来说是三位数),并为此留下较少的位数给其他部分。例如,下面的字符串本可以表示 00:07:10,但分钟会捕获两位数字,结果是一个无效的时间

time = QTime.fromString("00:710", "hh:ms") # invalid()

未在格式中表示的字段将被设置为零。例如

time = QTime.fromString("1.30", "m.s")
# time is 00:01:30.000

注意

如果要识别本地化的am或pm形式(如AP, ap, Ap, aP, A或a格式),请使用 system() .toTime().

注意

如果格式字符在上方表格使用它的最长表达式中的重复次数多于一次,则该部分格式将被读取为几个没有分隔符的消息;最长的表达式,可能重复多次,最后可能是一个较短的表达式。因此 'HHHHH' 将匹配 "08088""080808" 并将小时设置为8;如果时间字符串包含“070809”,它将匹配,但会产生不一致的结果,导致无效的时间。

hour()#
返回类型:

int

返回时间的小时部分(0到23)。

如果时间是无效的,则返回-1。

另请参阅

minute() second() msec()

isNull()#
返回类型:

bool

如果时间无效(即,该 QTime 对象是用默认构造函数构造的),则返回 true;否则返回 false。无效时间也是无效时间。

另请参阅

isValid()

isValid()#
返回类型:

bool

如果时间有效则返回 true;否则返回 false。例如,时间 23:30:55.746 是有效的,但 24:12:30 是无效的。

另请参阅

isNull()

静态 isValid(h, m, s[, ms=0])
参数:
  • h – int

  • m – int

  • s – int

  • ms – int

返回类型:

bool

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。

这是重载函数。

如果指定的时间有效则返回 true;否则返回 false。

如果小时数 h 在 0 到 23 的范围内,分钟和秒数 ms 在 0 到 59 的范围内,以及毫秒数 ms 在 0 到 999 的范围内,则时间是有效的。

示例

QTime.isValid(21, 10, 30) # returns true
QTime.isValid(22, 5, 62) # returns false
minute()#
返回类型:

int

返回时间的分钟部分(0 到 59)。

如果时间是无效的,则返回-1。

另请参阅

hour() second() msec()

msec()#
返回类型:

int

返回时间的毫秒部分(0 到 999)。

如果时间是无效的,则返回-1。

另请参阅

hour() minute() second()

msecsSinceStartOfDay()#
返回类型:

int

返回从一天开始至今的毫秒数,即从 00:00:00 开始。

msecsTo(t)#
参数:

tQTime

返回类型:

int

返回从当前时间到 t 的毫秒数。如果 t 比当前时间早,则返回的毫秒数是负数。

由于 QTime 在一天内测量时间,且一天有 86400 秒,所以结果总是在 -86400000 和 86400000 毫秒之间。

如果任一时间是无效的,则返回 0。

__ne__(rhs)#
参数:

rhsQTime

返回类型:

bool

返回 true 如果 lhsrhs 不同;否则返回 false

__lt__(rhs)#
参数:

rhsQTime

返回类型:

bool

返回 true 如果 lhs 比较早于 rhs;否则返回 false

__le__(rhs)#
参数:

rhsQTime

返回类型:

bool

返回 true 如果 lhs 比较早于或等于 rhs;否则返回 false

__eq__(rhs)#
参数:

rhsQTime

返回类型:

bool

返回 true 如果 lhs 等于 rhs;否则返回 false

__gt__(rhs)#
参数:

rhsQTime

返回类型:

bool

返回 true 如果 lhs 比較晚於 rhs;否则返回 false

__ge__(rhs)#
参数:

rhsQTime

返回类型:

bool

返回 true 如果 lhs 比較晚于或等于 rhs;否则返回 false

second()#
返回类型:

int

返回时间的第二部分(0到59秒)。

如果时间是无效的,则返回-1。

另请参阅

hour() minute() msec()

secsTo(t)#
参数:

tQTime

返回类型:

int

返回从当前时间到时间 t 的时间差(以秒为单位)。如果 t 早于当前时间,则返回的秒数是负的。

因为 QTime 在一天内计时,一天有 86400 秒,所以结果总是在 -86400 和 86400 之间。

secsTo() 不考虑任何毫秒。

如果任一时间是无效的,则返回 0。

另请参阅

addSecs() secsTo()

setHMS(h, m, s[, ms=0])#
参数:
  • h – int

  • m – int

  • s – int

  • ms – int

返回类型:

bool

设置时间为小时 h、分钟 m、秒 s 和毫秒 ms

h 必须在 0 到 23 之间,ms 必须在 0 到 59 之间,ms 必须在 0 到 999 之间。如果设置的时间有效则返回 true,否则返回 false

另请参阅

isValid()

toPython()#
返回类型:

object

toString(format)#
参数:

格式 – str

返回类型:

str

toString([f=Qt.TextDate])
参数:

fDateFormat

返回类型:

str

这是重载函数。

以字符串形式返回时间。参数 format 确定了字符串的格式。

如果 formatTextDate,则字符串的格式是 HH:mm:ss;例如,午夜前 1 秒将是“23:59:59”。

如果 formatISODate ,字符串格式对应于 ISO 8601 扩展日期表示规范,格式为 HH:mm:ss。要包括毫秒在内的 ISO 8601 日期,请使用格式 ISODateWithMs ,对应于 HH:mm:ss.zzz。

如果 formatRFC2822Date,则字符串将格式化为与 RFC 2822 兼容的方式。这种格式的例子是 “23:59:20”。

如果时间无效,将返回空字符串。

toString(format)
参数:

格式 – str

返回类型:

str