Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QDateTime类提供日期和时间函数。More...
这个类可以醃制。
也可以使用一个Python的datetime对象,每当一个QDateTime预计。
该QDateTime类提供日期和时间函数。
一个QDateTime对象包含一个日历日期和时钟时间(一个“日期时间” ) 。它是一个组合QDate和QTime类。它可以从系统时钟读取当前的日期时间。它提供的功能来比较日期时间以及通过增加秒数,天,月或年操纵一个日期时间。
一个QDateTime对象通常创建无论是在构造函数中给出的日期和时间明确,或者使用静态函数currentDateTime( ),返回设定到系统时钟的时间QDateTime对象。的日期和时间可以与被改变setDate()和setTime( ) 。日期时间也可以使用设置setTime_t( )函数,它接受一个符合POSIX标准的“秒数以来00:00:00 1970年1月”的价值。该fromString( )函数返回一个QDateTime ,给定一个字符串,用于在字符串中解释日期的日期格式。
该date()和time( )函数提供了访问的日期和时间部分的日期时间的。相同的信息被提供以文本格式toString()函数。
QDateTime提供了一整套运营商来比较两个QDateTime对象,其中较小的手段更早和更大的手段更高版本。
你可以递增(或递减)日期时间按毫秒的使用给定的数addMSecs() ,用秒addSecs( ) ,或者使用天addDays( ) 。同样,您可以使用addMonths()和addYears( ) 。该daysTo( )函数返回天两个日期时间之间的数,secsTo( )返回的秒数2日期时间之间,并msecsTo( )返回两个日期时间之间的毫秒数。
QDateTime日期时间可作为存储local time或UTC。QDateTime.currentDateTime( )返回一个QDateTime表示为本地时间;使用toUTC()将其转换为UTC。您也可以使用timeSpec()来找出是否一个QDateTime对象存储UTC时间或本地时间。操作如addSecs()和secsTo( )都知道的日光节约时间(DST ) 。
Note:QDateTime不佔闰秒。
QDate使用在所有语言环境公历, 1582年10月开始的日期15 。对于日期截至及包括1582年10月4日,儒略历被使用。这意味着有一个10天的差距在1582年10月4日和15日之间的内部日历。当您使用QDateTime的日期在那个时代, 1582年10月4日之后的一天是1582年10月15日,和日期的差距是无效的。
朱利安在这里使用的公历转换日期是首次引入公历,由罗马教皇格里高利十三日。这变化是没有被普遍接受,一些地方只执行它在稍后的日期(如果有的话) 。 QDateTime不采取任何这些历史事实考虑在内。如果应用程序必须支持区域设置特定的约会系统,它必须这样做对自己,记住要转换使用儒略日的日期。
没有0年。在这一年的日期将被视为无效。当年-1是今年“ 1基督之前”或“ 1日前电流的时代。 ” 0001-01-01前一天是12月31日, 1 BCE 。
有效的日期范围是从1月2日, 4713 BCE ,到某个时候在今年1100万CE认证。儒略日传回QDate.toJulianDay()是一个数字,在连续的范围从1到overflow,甚至跨越QDateTime的“日漏洞” 。它适合于应用程序,必须转换QDateTime为日期在另一日历系统,例如,希伯来文,伊斯兰或中国使用。
公历中引入了世界各地不同的地方不同的日期。 QDateTime用途QDate存储日期,所以它使用的公历为所有区域设置,开始日期1582年10月15日。对于日期截至及包括1582年10月4日, QDateTime使用儒略历。这意味着有一个10天的差距,在QDateTime历1582年10月4日和15日之间。当您使用QDateTime的日期在那个时代, 1582年10月4日之后的一天是1582年10月15日,和日期的差距是无效的。
QDateTime使用系统的时区信息来确定与UTC本地时间的偏移量。如果系统没有正确或不切合最新的配置, QDateTime会给出错误的结果也是如此。
QDateTime时与夏令时处理考虑到了系统的时区信息。在现代的Unix系统,这意味着它时,应用正确的历史DST数据的可能。在Windows和Windows CE ,那里的系统不支持DST的历史数据,历史精度不能保持相对的DST 。
DST同时考虑到有效的日期范围是1970-01-01到现在,和规则到位正确处理DST ,直到2037年12月31日,但这些可能会改变。对于日期的范围外时, QDateTime使best guess使用规则1970或2037年,但我们不能保证准确性。这意味着QDateTime没有考虑到在一个区域的时区帐户更改1970年以前,即使系统的时区数据库支持的信息。
构造一个空的日期时间(即空的日期和空时间) 。一个空的日期时间是无效的,因为日期是无效的。
See also isValid( ) 。
构造一个日期时间与给定date时,有效时间( 00:00:00.000 ) ,并设置timeSpec()来Qt.LocalTime。
构造一个日期时间与给定date和time,通过使用规定的时间规范spec。
If date是有效的和time不,时间将被设置为午夜。
构造的一个副本other日期时间。
返回QDateTime对象包含日期时间ndays天迟于该对象的日期时间(或更早,如果ndays是负的) 。
See also daysTo( )addMonths( )addYears()和addSecs( ) 。
返回QDateTime对象包含日期时间nmonths个月后比这个对象的日期时间(或更早版本,如果nmonths是负的) 。
See also daysTo( )addDays( )addYears()和addSecs( ) 。
返回QDateTime对象包含日期时间msecs毫秒迟于该对象的日期时间(或更早版本,如果msecs是负的) 。
See also addSecs( )msecsTo( )addDays( )addMonths()和addYears( ) 。
返回QDateTime对象包含日期时间s秒迟于该对象的日期时间(或更早版本,如果s是负的) 。
See also addMSecs( )secsTo( )addDays( )addMonths()和addYears( ) 。
返回QDateTime对象包含日期时间nyears年后比这个对象的日期时间(或更早版本,如果nyears是负的) 。
See also daysTo( )addDays( )addMonths()和addSecs( ) 。
返回当前日期时间,所报告的系统时钟,在当地时区。
See also currentDateTimeUtc( )QDate.currentDate( )QTime.currentTime()和toTimeSpec( ) 。
返回当前日期时间,所报告的系统时钟,以UTC 。
此功能被引入Qt的4.7 。
See also currentDateTime( )QDate.currentDate( )QTime.currentTime()和toTimeSpec( ) 。
返回毫秒自1970年以来-01- 01T00人数: 00:00世界标准时间。这个数字是像POSIX时间变量,但以毫秒为单位来代替。
此功能被引入Qt的4.7 。
See also currentDateTime( )currentDateTimeUtc( )toTime_t()和toTimeSpec( ) 。
返回日期时间的日期部分。
See also setDate( )time()和timeSpec( ) 。
返回从该日期时间的天数,以本other日期时间。如果other日期时间早于这个日期,返回的值是负的。
See also addDays( )secsTo()和msecsTo( ) 。
返回日期时间的日期和时间的毫秒数,msecs,自1970年以来-01- 01T00已通过: 00:00.000 ,协调世界时(Qt.UTC) 。在不支持时区的系统,时间将被设置为如果本地时间是Qt.UTC。
注意,有可能的值msecs这个谎言之外的有效范围QDateTime,正面和负面的。这个函数的行为是未定义的值。
此功能被引入Qt的4.7 。
See also toTime_t()和setTime_t( ) 。
返回QDateTime由表示string使用format定,或无效的日期时间,如果这是不可能的。
注意事项Qt.TextDate:建议您使用英文短的月份名称(例如“扬” ) 。虽然本地化月名也可以使用,它们依赖于用户的区域设置。
返回QDateTime由表示string使用format给予,或无效的日期时间,如果该字符串无法解析。
这些表达式可以用于格式字符串的日期部分:
Expression | Output |
---|---|
d | the day as number without a leading zero (1 to 31) |
dd | the day as number with a leading zero (01 to 31) |
ddd | the abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses QDate.shortDayName(). |
dddd | the long localized day name (e.g. 'Monday' to 'Sunday'). Uses QDate.longDayName(). |
M | the month as number without a leading zero (1-12) |
MM | the month as number with a leading zero (01-12) |
MMM | the abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses QDate.shortMonthName(). |
MMMM | the long localized month name (e.g. 'January' to 'December'). Uses QDate.longMonthName(). |
yy | the year as two digit number (00-99) |
yyyy | the year as four digit number |
Note:不同于其他版本的功能,日期和月份名称必须在用户的本地语言来给出。它是唯一可以使用的英文名称,如果用户的语言是英语。
这些表达式可以用于格式字符串的时间部分:
Expression | Output |
---|---|
h | the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display) |
hh | the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display) |
H | the hour without a leading zero (0 to 23, even with AM/PM display) |
HH | the hour with a leading zero (00 to 23, even with AM/PM display) |
m | the minute without a leading zero (0 to 59) |
mm | the minute with a leading zero (00 to 59) |
s | the second without a leading zero (0 to 59) |
ss | the second with a leading zero (00 to 59) |
z | the milliseconds without leading zeroes (0 to 999) |
zzz | the milliseconds with leading zeroes (000 to 999) |
AP or A | interpret as an AM/PM time. AP must be either "AM" or "PM". |
ap or a | Interpret as an AM/PM time. ap must be either "am" or "pm". |
所有其他输入的字符将被视为文本。括在singlequotes任何字符序列也将被视为文本,而不是被用作表达。
QTime time1 = QTime.fromString("131", "HHh"); // time1 is 13:00:00 QTime time1 = QTime.fromString("1apA", "1amAM"); // time1 is 01:00:00 QDateTime dateTime2 = QDateTime.fromString("M1d1y9800:01:02", "'M'M'd'd'y'yyhh:mm:ss"); // dateTime is 1 January 1998 00:01:02
如果该格式不被满足的无效QDateTime返回。没有前导零( D, M,H , M,S , Z)的表达式将是贪婪的。这意味着,他们将使用两个数字,即使这将使他们的范围之外和/或离开过几位其他部分。
QDateTime dateTime = QDateTime.fromString("130", "Mm"); // invalid
这可能意味着1月1日00:30.50但M将抢两位数。
对于未在格式表示任何领域使用以下缺省值:
Field | Default value |
---|---|
Year | 1900 |
Month | 1 (January) |
Day | 1 |
Hour | 0 |
Minute | 0 |
Second | 0 |
例如:
QDateTime dateTime = QDateTime.fromString("1.30.1", "M.d.s"); // dateTime is January 30 in 1900 at 00:00:01.
QDateTime.toString( )QTime.toString( )
See also QDate.fromString( )QTime.fromString()和QDate.toString( ) 。
返回日期时间的日期和时间是多少seconds自1970年以来-01- 01T00已通过:00:00 ,协调世界时(Qt.UTC) 。在不支持时区的系统,时间将被设置为如果本地时间是Qt.UTC。
这个函数中引入了Qt 4.2中。
See also toTime_t()和setTime_t( ) 。
返回True如果这两个日期和时间为空,否则返回False 。一个空的日期时间是无效的。
See also QDate.isNull( )QTime.isNull()和isValid( ) 。
返回True如果这两个日期和时间都是有效的,否则返回False 。
See also QDate.isValid()和QTime.isValid( ) 。
返回的毫秒数从这个日期时间到other日期时间。如果other日期时间早于这个日期,返回的值是负的。
前执行比较,这两个日期时间转换为Qt.UTC以保证结果是正确的,如果两个日期时间中的一个已经日光节约时间(DST )和其他没有。
此功能被引入Qt的4.7 。
See also addMSecs( )daysTo()和QTime.msecsTo( ) 。
返回的秒数从这个日期到other日期时间。如果other日期时间早于这个日期,返回的值是负的。
前执行比较,这两个日期时间转换为Qt.UTC以保证结果是正确的,如果两个日期时间中的一个已经日光节约时间(DST )和其他没有。
例如:
QDateTime now = QDateTime.currentDateTime(); QDateTime xmas(QDate(now.date().year(), 12, 25), QTime(0, 0)); qDebug("There are %d seconds to Christmas", now.secsTo(xmas));
See also addSecs( )daysTo()和QTime.secsTo( ) 。
设置此日期时间的日期部分,以date。如果没有时间被设置,它被设定为午夜。
See also date( )setTime()和setTimeSpec( ) 。
设置给定的毫秒数的日期和时间,msecs,自1970年以来-01- 01T00已通过: 00:00.000 ,协调世界时(Qt.UTC) 。在不支持时区,此功能系统的行为就好像本地时间分别为Qt.UTC。
注意,有可能的值msecs这个谎言之外的有效范围QDateTime,正面和负面的。这个函数的行为是未定义的值。
此功能被引入Qt的4.7 。
See also toMSecsSinceEpoch()和setTime_t( ) 。
设置此日期时间的时间部分time。
See also time( )setDate()和setTimeSpec( ) 。
设置给定数量的日期和时间seconds自1970年以来-01- 01T00已通过:00:00 ,协调世界时(Qt.UTC) 。在不支持时区,此功能系统的行为就好像本地时间分别为Qt.UTC。
See also toTime_t( ) 。
设定这个日期时间用于时间规范spec。
See also timeSpec( )setDate( )setTime()和Qt.TimeSpec。
返回日期时间的时间部分。
See also setTime( )date()和timeSpec( ) 。
返回日期时间的时间规范。
See also setTimeSpec( )date( )time()和Qt.TimeSpec。
返回包含此日期时间的日期和时间信息的日期时间,但使用指定的Qt.LocalTime的定义。
See also toTimeSpec( ) 。
返回日期时间为自1970年以来-01- 01T00已通过的毫秒数: 00:00.000 ,协调世界时(Qt.UTC) 。
在不支持时区的系统,这个功能的行为就好像本地时间分别为Qt.UTC。
此函数的行为是不确定的,如果存储在此对象的日期时间是无效的。然而,对于所有有效日期,此函数返回一个唯一的值。
此功能被引入Qt的4.7 。
See also toTime_t()和setMSecsSinceEpoch( ) 。
返回日期时间为一个字符串。该format参数决定了结果字符串的格式。
这些表达式可以用于日期:
Expression | Output |
---|---|
d | the day as number without a leading zero (1 to 31) |
dd | the day as number with a leading zero (01 to 31) |
ddd | the abbreviated localized day name (e.g. 'Mon' to 'Sun'). Uses QDate.shortDayName(). |
dddd | the long localized day name (e.g. 'Monday' to 'Qt.Sunday'). Uses QDate.longDayName(). |
M | the month as number without a leading zero (1-12) |
MM | the month as number with a leading zero (01-12) |
MMM | the abbreviated localized month name (e.g. 'Jan' to 'Dec'). Uses QDate.shortMonthName(). |
MMMM | the long localized month name (e.g. 'January' to 'December'). Uses QDate.longMonthName(). |
yy | the year as two digit number (00-99) |
yyyy | the year as four digit number |
这些表达式可以用于时间:
Expression | Output |
---|---|
h | the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display) |
hh | the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display) |
m | the minute without a leading zero (0 to 59) |
mm | the minute with a leading zero (00 to 59) |
s | the second without a leading zero (0 to 59) |
ss | the second with a leading zero (00 to 59) |
z | the milliseconds without leading zeroes (0 to 999) |
zzz | the milliseconds with leading zeroes (000 to 999) |
AP | use AM/PM display. AP will be replaced by either "AM" or "PM". |
ap | use am/pm display. ap will be replaced by either "am" or "pm". |
所有其它输入的字符将被忽略。括在singlequotes任何字符序列将被视为文本,而不是被用作表达。连续两singlequotes ( “''” )是由singlequote输出所取代。
例如格式字符串(假设QDateTime是2001年5月21日14点13分09秒) :
Format | Result |
---|---|
dd.MM.yyyy | 21.05.2001 |
ddd MMMM d yy | Tue May 21 01 |
hh:mm:ss.zzz | 14:13:09.042 |
h:m:s ap | 2:13:9 pm |
如果日期时间是无效的,空字符串将被返回。
See also QDate.toString()和QTime.toString( ) 。
这是一个重载函数。
返回日期时间的字符串中的format给出。
如果format is Qt.TextDate,该字符串被格式化的默认方式。QDate.shortDayName( )QDate.shortMonthName()和QTime.toString()是用来产生该字符串,所以日期和月份名称将本地化的名称。这种格式的一个例子是“周三5月20日03:40:13 1998” 。
如果format is Qt.ISODate,字符串格式对应于ISO 8601扩展规格的日期和时间的表示,采取的形式为YYYY- MM- DDTHH : MM:SS [Z | [ + | - ] HH : MM] ,视timeSpec()的QDateTime。如果timeSpec()是Qt.UTC,Z将被附加到字符串;如果timeSpec()是Qt.OffsetFromUTC相对于UTC的偏移,以小时和分钟会被附加到字符串。
如果format is Qt.SystemLocaleShortDate or Qt.SystemLocaleLongDate,字符串格式取决于系统的区域设置。相同的调用QLocale.system( ) 。的toString (日期时间,QLocale.ShortFormat)或QLocale.system( ) 。的toString (日期时间,QLocale.LongFormat) 。
如果format is Qt.DefaultLocaleShortDate or Qt.DefaultLocaleLongDate,字符串格式依赖于默认应用程序的语言环境。这就是语言环境设置QLocale.setDefault( )或系统区域设置,如果没有默认区域设置已定。相同的调用QLocale ( ) 。的toString (日期时间,QLocale.ShortFormat)或QLocale ( ) 。的toString (日期时间,QLocale.LongFormat) 。
如果日期时间是无效的,空字符串将被返回。
Warning:该Qt.ISODate格式仅适用于年范围为0 〜9999 。这种限制可能适用于区域设置的格式为好,这取决于区域设置。
See also QDate.toString( )QTime.toString()和Qt.DateFormat。
返回日期时间为自1970年以来-01- 01T00已通过秒数:00:00 ,协调世界时(Qt.UTC) 。
在不支持时区的系统,这个功能的行为就好像本地时间分别为Qt.UTC。
Note:这个函数返回一个32位的无符号整数,所以在1970年之前它不支持日期,但它2038- 01 - 19T03后支持日期: 14:06 ,这可能不是有效的time_t值。通过这些time_t的值的系统功能时一定要小心,这可能将其解释为负的日期。
如果日期是输入1970 -01- 01T00外: 00:00至2106 - 02 - 07T06 : 28:14 ,该函数返回-1转换为一个无符号整数(即0xFFFFFFFF的) 。
为了得到一个扩展量程,使用toMSecsSinceEpoch( ) 。
See also toMSecsSinceEpoch()和setTime_t( ) 。
返回此日期时间的设定为使用给定的时间副本specification。
See also timeSpec( )toUTC()和toLocalTime( ) 。
返回包含此日期时间的日期和时间信息的日期时间,但使用指定的Qt.UTC的定义。
See also toTimeSpec( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |