QDateTime类#include qdatetime.h
QDateTime类提供日期和时间功能。
1、详细描述
QDateTime对象包含日历日期和时钟时间(“日期和时间”)。 是QDate和QTime两个类的组合。 可以从系统时钟中读取当前的日期和时间。 提供用于比较日期和操作日期和时间的函数,如日期、日期、月和年。
通常,QDateTime对象可以从一个有意义的日期和时间开始创建,也可以使用静态函数currentDateTime ()在QDateTime对象中包含系统时钟的日期和时间。 日期和时间也可以在setDate (和setTime )中更改。 日期和时间也可以使用setTime ()函数获取POSIX标准时间,该函数表示1970年1月1日00:00:00或更高版本的秒数。 fromString ()函数可以按特定字符串和字符串中的日期和时间格式的间隔返回QDateTime。
date (和time ) )函数可以访问日期和时间。 toString ) )提供与文本格式相同的信息。
QDateTime提供了一组操作符,用于比较两个QDateTime对象。 在这里,它比显示快,比显示慢。
您可以使用addSecs ()或addDays ) )在日期中添加/减去指定的秒数或天数。 同样,可以使用addMonths (和addYears )。 daysTo (函数返回两个日期时间之间的天数,而sectTo )返回两个日期时间之间的秒数。
日期和时间对象的范围受QDate对象和QTime对象的范围限制。
2、成员函数文档
QDateTime::QDateTime ()
创建零日期和时间(例如,零日期和零时间)。 零日期无效,因此零日期和时间无效。
QDateTime::QDateTime (constQDate date )
日期创建日期和零时间(00:00:00.000 )的日期和时间。
QDateTime::QDateTime (constQDate date, const QTime time )
创建日期为date且时间为time的日期和时间。
QDateTime QDateTime::addDays (int ndays ) const
返回此日期和时间对象在ndays天后的日期和时间对象。 或者,如果为负数,则返回ndays之前的对象。
QDateTime QDateTime::addMonths(int nmonths ) const
此日期和时间对象返回nmonths月之后的日期和时间对象(或nmonths月之前的负数)。
QDateTime QDateTime::addSecs (int nsecs ) const
如果此日期和时间对象在nsecs秒后的日期和时间对象,或者在nsecs秒前的负数,则返回。
QDateTime QDateTime::addYears(int nyears ) const
此日期和时间对象返回晚于nyears年的日期和时间对象(或早于nyears年,如果为负数)。
QDateTimeQDateTime::currentDateTime () [静态]
返回当前的日期和时间。 从系统时钟中获取。
QDate QDateTime::date () const
返回日期和时间的日期部分。
int QDateTime::daysTo (constQDateTime dt ) const
返回从这个日期和时间到dt的天数。 如果dt早于此日期和时间,则返回负数。
QDateTimeQDateTime::fromStrin
g (const QString & s, Qt::DateFormat f = Qt::TextDate )[静态]通过给定的字符串s,使用格式f,返回这个QDateTime,或者如果这是不可能的话返回一个无效的日期时间。
注意Qt::LocalDate在这里不能使用。
注意Qt::TextDate:它被推荐使用英语中的月的缩写格式(比如Jan)。本地的月名称也可以被使用,但这取决于用户的本地设置。
bool QDateTime::isNull ()const
如果日期和时间都是零,返回真,否则返回假。一个零日期时间是无效的。
bool QDateTime::isValid ()const
如果日期和时间都是有效的,返回真,否则返回假。
bool QDateTime::operator!= (const QDateTime & dt ) const
如果这个日期时间不等于dt,返回真,否则返回假。
bool QDateTime::operator< (const QDateTime & dt ) const
如果这个日期时间早于dt,返回真,否则返回假。
bool QDateTime::operator<=( const QDateTime & dt ) const
如果这个日期时间不晚于dt,返回真,否则返回假。
bool QDateTime::operator== (const QDateTime & dt ) const
如果这个日期时间等于dt,返回真,否则返回假。
bool QDateTime::operator> (const QDateTime & dt ) const
如果这个日期时间晚于dt,返回真,否则返回假。
bool QDateTime::operator>=( const QDateTime & dt ) const
如果这个日期时间不早于dt,返回真,否则返回假。
int QDateTime::secsTo ( constQDateTime & dt ) const
返回从这个日期到dt的秒数(如果dt早于这个日期,返回的为负数)。
实例:
QDateTime dt = QDateTime::currentDateTime();
QDateTime xmas( QDate(dt.year(),12,24), QTime(17,00) );
qDebug( "There are %d seconds to Christmas", dt.secsTo(xmas)); // 离圣诞节还有多少秒
void QDateTime::setDate (const QDate & date )
设置日期时间的日期部分为date。
void QDateTime::setTime (const QTime & time )
设置日期时间的时间部分为time。
void QDateTime::setTime_t (uint secsSince1Jan1970UTC )
通过给定的从1970年1月1日00:00:00(通用协调时间)所过的秒来设置本地时间的日期和时间。在不支持时区的系统上,这个函数的行为就好像本地时间是通用协调时间一样。
注意MicrosoftWindows只支持一定范围的secsSince1Jan1970UTC的值。
QTime QDateTime::time () const
返回日期时间的时间部分。
QString QDateTime::toString (const QString & format ) const
返回一个字符串的日期时间。format参数决定了结果字符串的格式。
这些是可能用到的日期表达式:
d - 没有前置0的数字的天(1-31)
dd - 前置0的数字的天(01-31)
ddd - 缩写的日名称(Mon-Sun)。使用QDate::shortDayName()。
dddd - 长的日名称(Monday-Sunday)。使用QDate::longDayName()。
M - 没有前置0的数字的月(1-12)
MM - 前置0的数字的月(01-12)
MMM - 缩写的月名称(Jan-Dec)。使用QDate::shortMonthName()。
MMMM - 长的月名称(January-December)。使用QDate::longMonthName()。
yy - 两位数字的年(00-99)
yyyy - 四位数字的年(0000-9999)
这些是可能用到的时间表达式:
h - 没有前置0的数字的小时(0-23或者如果显示AM/PM时,1-12)
hh - 前置0的数字的小时(00-23或者如果显示AM/PM时,01-12)
m - 没有前置0的数字的分钟(0-59)
mm - 前置0的数字的分钟(00-59)
s - 没有前置0的数字的秒(0-59)
ss - 前置0的数字的秒(00-59)
z - 没有前置0的数字的毫秒(0-999)
zzz - 前置0的数字的毫秒(000-999)
AP - 切换为AM/PM显示。AP将被“AM”或“PM”替换。
ap - 切换为am/pm显示。ap将被“am”或“pm”替换。
所有其他输入字符都将被忽略。
格式字符串实例(假设这个QDateTime为2001年5月21日14:13:09)
“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”
QString QDateTime::toString (Qt::DateFormat f = Qt::TextDate ) const
这是一个重载成员函数,返回一个字符串的日期时间。f参数决定了结果字符串的格式。
如果f是Qt::TextDate,字符串格式是“Wed May 20 03:40:13 1998”(使用shortDayName()、shortMonthName()和QTime::toString()函数来生成本地指定的字符串)。
如果f是Qt::ISODate,字符串格式遵循ISO 8601表示日期和时间的说明,也就是YYYY-MM-DDTHH:MM:SS。
如果f是Qt::LocalDate,字符串格式依赖于系统的本地设置。
如果f是无效的,toString()返回一个空字符串。
相关函数
QDataStream &operator<< ( QDataStream & s, const QDateTime & dt )
写日期时间dt到流s中。
QDataStream &operator>> ( QDataStream & s, QDateTime & dt )
从流s中读取一个日期时间到dt。