一、描述
QDateTime 对象对日历日期和时钟时间进行编码。它结合了 QDate 和 QTime 类的特性。它可以从系统时钟中读取当前日期时间。它提供了用于比较日期时间和通过添加秒数、天数、月数或年数来操作日期时间的函数。
二、成员函数
1、QString toString(const QString &format, QCalendar cal = QCalendar())
以字符串形式返回日期时间。format 参数确定结果字符串的格式。
QString toString(Qt::DateFormat format = Qt::TextDate)
2、QDateTime addDays(qint64 ndays)
QDateTime addMSecs(qint64 msecs)
QDateTime addMonths(int nmonths)
QDateTime addSecs(qint64 s)
QDateTime addYears(int nyears)
返回的对象包含比此对象的日期时间晚 n 天 / msecs 毫秒 / nmonths 个月 / s 秒 / n 年的日期时间(如果参数为负,则更早)。
3、[static] QDateTime currentDateTime()
返回本地时区中系统时钟报告的当前日期时间。
4、[static] QDateTime currentDateTimeUtc()
返回系统时钟报告的当前日期时间,以 UTC 为单位。
5、[static] qint64 currentMSecsSinceEpoch()
返回自 1970-01-01T00:00:00 通用协调时间以来的毫秒数。
6、[static] qint64 currentSecsSinceEpoch()
返回自 1970-01-01T00:00:00 通用协调时间以来的秒数。
7、QDate date() / QTime time()
返回日期时间的日期 / 时间部分。
8、qint64 daysTo(const QDateTime &other)
返回从此日期时间到另一个日期时间的天数。
天数计算为在此日期时间到另一个日期时间之间到达午夜的次数。即着从 23:55 到第二天 0:05 的 10 分钟差异计为一天。
如果其他日期时间早于此日期时间,则返回值为负。
qint64 msecsTo(const QDateTime &other)
qint64 secsTo(const QDateTime &other)
返回从此日期时间到另一个日期时间的毫秒数 / 秒数。如果 other 日期时间早于此日期时间,则返回值为负。如果任一日期时间无效,则返回 0。
9、[static] QDateTime fromMSecsSinceEpoch(qint64 msecs,Qt::TimeSpec spec = Qt::LocalTime,int offsetSeconds = 0)
[static] QDateTime fromMSecsSinceEpoch(qint64 msecs,const QTimeZone &timeZone)
返回一个日期时间,其日期和时间是自 1970-01-01T00:00:00.000,协调世界时 (Qt::UTC) 以来经过并转换为给定规范的毫秒数。
10、[static] QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec = Qt::LocalTime, int offsetSeconds = 0)
[static] QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone)
同上,秒。
11、[static] QDateTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
[static] QDateTime fromString(const QString &string, const QString &format, QCalendar cal = QCalendar())
使用给定的格式返回由字符串表示的QDateTime。
qDebug()<<QDateTime::fromString("2021-09-21 18:30:14.699","yyyy-MM-dd hh:mm:ss.zzz");
12、bool isDaylightTime()
此日期时间是否属于夏令时。
13、bool isNull()
日期和时间是否都为空。空日期时间无效。
14、bool isValid()
日期和时间是否都有效。
15、void setDate(QDate date)
将此日期时间的日期部分设置为date。如果尚未设置时间,则设置为午夜。如果日期无效,则此 QDateTime 无效。
void setTime(QTime time)
将此日期时间的时间部分设置为time。如果时间无效,此函数将其设置为午夜。
可以通过将 QDateTime 设置为默认 QTime 来清除 QDateTime 中的任何设置时间:
QDateTime dt = QDateTime::currentDateTime();
dt.setTime(QTime());
16、void setMSecsSinceEpoch(qint64 msecs) / void setSecsSinceEpoch(qint64 secs)
根据自 1970-01-01T00:00:00.000,协调世界时 (Qt::UTC) 以来经过的毫秒数 / 秒数设置日期和时间。
qint64 toMSecsSinceEpoch() / qint64 toSecsSinceEpoch()
17、void setTimeSpec(Qt::TimeSpec spec)
设置此日期时间中使用的时间规范。
enum Qt::TimeSpec:
- Qt::LocalTime:Local 时间,由系统时区设置控制。
- Qt::UTC:协调世界时。
- Qt::OffsetFromUTC:从协调世界时以秒为单位的偏移量。
- Qt::TimeZone