QDateTime 已废弃的成员

以下 QDateTime 类的成员已废弃。 提供它们是为了保持旧代码的兼容性。我们强烈建议不要在新代码中使用它们。

公共函数

(自 6.9 已废弃) QDateTime(QDate date, QTime time, Qt::TimeSpec spec, int offsetSeconds = 0)
(自 6.9 已废弃) voidsetOffsetFromUtc(int offsetSeconds)
(自 6.9 已废弃) voidsetTimeSpec(Qt::TimeSpec spec)
(自 6.9 已废弃) QDateTimetoTimeSpec(Qt::TimeSpec spec) const

静态公共成员

(自 6.9 已废弃) QDateTimefromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds = 0)
(自 6.9 已废弃) QDateTimefromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec, int offsetSeconds = 0)

成员函数文档

[废弃于 6.9] QDateTime::QDateTime(QDate date, QTime time, Qt::TimeSpec spec, int offsetSeconds = 0)

此函数自 6.9 已废弃。我们强烈建议不要在新代码中使用它。

请使用 QDateTime(date, time)QDateTime(date, time, QTimeZone::fromSecondsAheadOfUtc(offsetSeconds))

使用给定的 datetime 构造日期时间,使用 spec 暗示的时间表示法和 offsetSeconds 秒。

如果 date 有效而 time 无效,时间将被设置为午夜。

如果 spec 不是 Qt::OffsetFromUTC,则忽略 offsetSeconds。如果 specQt::OffsetFromUTC 并且 offsetSeconds 为 0,则 timeSpec() 将被设置为 Qt::UTC,即 0 秒的偏移。

如果 specQt::TimeZone,则 spec 将被设置为 Qt::LocalTime,即当前系统时区。要创建 Qt::TimeZone 日期时间,请使用正确的构造函数。

如果 date 超出了 QDateTime 表示的日期范围,则结果是无效的。如果 specQt::LocalTime 且系统的时区跳过了给定的日期和时间,则结果是无效的。

[静态,自6.9版已过时] QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds = 0)

此函数自 6.9 已废弃。我们强烈建议不要在新代码中使用它。

这是一个重载函数。

请传入一个QTimeZone实例,或者省略specoffsetSeconds

返回一个表示从1970年1月1日起,UTC时间后的给定毫秒数msecs的指针的日期时间,描述方式由specoffsetSeconds指定。

注意,对于msecs存在可能的值,这些值超出QDateTime的有效范围,包括正值和负值。对于这些值,此函数的行为是未定义的。

如果spec不是Qt::OffsetFromUTC,则忽略offsetSeconds。如果specQt::OffsetFromUTCoffsetSeconds为0,则使用Qt::UTC作为spec,因为UTC的偏移量为零。

如果specQt::TimeZone,则使用Qt::LocalTime代替,等同于使用当前系统时区(但表示方式不同)。

另请参阅fromSecsSinceEpoch(),toMSecsSinceEpoch()和setMSecsSinceEpoch()。

[静态,自6.9版已过时] Q QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec, int offsetSeconds = 0)

此函数自 6.9 已废弃。我们强烈建议不要在新代码中使用它。

这是一个重载函数。

请传入一个QTimeZone实例,或者省略specoffsetSeconds

返回一个表示从1970年1月1日开始,UTC时间后的给定秒数secs的指针的日期时间,描述方式由specoffsetSeconds指定。

注意,对于secs存在可能的值,这些值超出QDateTime的有效范围,包括正值和负值。对于这些值,此函数的行为是未定义的。

如果spec不是Qt::OffsetFromUTC,则忽略offsetSeconds。如果specQt::OffsetFromUTCoffsetSeconds为0,则使用Qt::UTC作为spec,因为UTC的偏移量为零。

如果specQt::TimeZone,则使用Qt::LocalTime代替,等同于使用当前系统时区(但表示方式不同)。

另请参阅fromMSecsSinceEpoch(),toSecsSinceEpoch()和setSecsSinceEpoch()。

[自6.9版已过时] void QDateTime::setOffsetFromUtc(int offsetSeconds)

此函数自 6.9 已废弃。我们强烈建议不要在新代码中使用它。

请使用setTimeZone(QTimeZone::fromSecondsAheadOfUtc(offsetSeconds))代替。

timeSpec()设置为Qt::OffsetFromUTC,并将偏移量设置为offsetSeconds。日期时间可能指向不同的时间点。

最大和最小偏移量是14个正负小时。如果offsetSeconds大于或小于此值,则结果未定义。

如果offsetSeconds为0,则timeSpec()将被设置为Qt::UTC

另请参阅 setTimeZone(),isValid(),offsetFromUtc()和toOffsetFromUtc()。

[已在6.9版本中弃用] void QDateTime::setTimeSpec(Qt::TimeSpec spec)

此函数自 6.9 已废弃。我们强烈建议不要在新代码中使用它。

请使用setTimeZone()代替

将此datetiem使用的时规范设置为spec。日期时间可能指向不同的时间点。

如果specQt::OffsetFromUTC,则timeSpec()将设置为Qt::UTC,即有效的偏移量为0。

如果specQt::TimeZone,则spec将设置为Qt::LocalTime,即当前系统时区。

示例

QDateTime local(QDateTime::currentDateTime());
qDebug() << "Local time is:" << local;

QDateTime UTC(local);
UTC.setTimeSpec(Qt::UTC);
qDebug() << "UTC time is:" << UTC;

qDebug() << "There are" << local.secsTo(UTC) << "seconds difference between the datetimes.";

另请参阅 setTimeZone(),timeSpec(),toTimeSpec(),setDate()和setTime()。

[已在6.9版本中弃用] QDateTime QDateTime::toTimeSpec(Qt::TimeSpec spec) const

此函数自 6.9 已废弃。我们强烈建议不要在新代码中使用它。

请使用toTimeZone()代替。

返回此datetime转换为给定的时间spec的副本。

结果表示与、等于此datetime相同的同一时间点。

如果specQt::OffsetFromUTC,则将其设置为Qt::UTC。要设置相对于UTC的固定偏移量,请使用toTimeZone()或toOffsetFromUtc()。

如果specQt::TimeZone,则将其设置为Qt::LocalTime,即本地时区。要设置指定的时区,请使用toTimeZone()。

示例

QDateTime local(QDateTime::currentDateTime());
QDateTime UTC(local.toTimeSpec(Qt::UTC));
qDebug() << "Local time is:" << local;
qDebug() << "UTC time is:" << UTC;
qDebug() << "No difference between times:" << local.secsTo(UTC);

另请参阅 setTimeSpec(),timeSpec()和toTimeZone()。

© 2024 The Qt Company Ltd. 本文档中的文档贡献归各自的所有者所有。本文档提供的文档在自由软件基金会的条款和条件下发布,许可协议为GNU自由文档许可协议版本1.3。Qt及其相关标志是芬兰的The Qt Company Ltd.在全球和其他国家的商标。所有其他商标均为各自所有者的财产。