14-Qt6 QDatetime

导读:本篇文章讲解 14-Qt6 QDatetime,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

  • 类QDate提供年月日的日期信息;
  • 类QTime提供时分秒的时间信息;
  • 类QDateTime是类QDate和类QTime的相结合,它可以从系统时钟中读取当前日期时间。它提供比较日期时间和操作日期时间的函数,比如加上一定数量的秒、天、月或年。
  • 类QLocale是用来指示语言区域的;

再说几个关于时间的常见概念:

  • “UTC”:Universal Time Coordinated 协调世界时,又称世界标准时间;
  • “GMT”:Greenwich Mean Time 格林尼治平均时,UTC和GMT都与英国伦敦的本地时相同,所以程序中UTC与GMT没什么不同。意思UTC=GMT是相等的,大约差0.9。
  • “TimeStamp”时间戳UTC时间从(1970年01月01日 0:00:00)开始计算的秒数。
toTime_t()、 fromTime_t()、Qt::SystemLocaleShortDate 
and Qt::SystemLocaleLongDate已经被Qt弃用,在qt6中有替代函数。
#include <QCoreApplication>
#include <QDateTime>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qInfo() <<"--------------------------QDate----------------------------------";
    QDate today = QDate::currentDate();
    qInfo() << "ISODate" << today.toString(Qt::DateFormat::ISODate);
    qInfo() << "RFC2822Date" << today.toString(Qt::DateFormat::RFC2822Date);
    qInfo() << "ISODateWithMs" << today.toString(Qt::DateFormat::ISODateWithMs);

    qInfo() <<"--------------------------QTime----------------------------------";    QTime today_t = QTime::currentTime();
    qInfo() << "ISODate" << today_t.toString(Qt::DateFormat::ISODate);
    qInfo() << "RFC2822Date" << today_t.toString(Qt::DateFormat::RFC2822Date);
    qInfo() << "ISODateWithMs" << today_t.toString(Qt::DateFormat::ISODateWithMs);

    qInfo() <<"--------------------------QDateTime----------------------------------";
    QDateTime today_dt = QDateTime::currentDateTime();
    qInfo() << "ISODate" << today_dt.toString(Qt::DateFormat::ISODate);
    qInfo() << "RFC2822Date" << today_dt.toString(Qt::DateFormat::RFC2822Date);
    qInfo() << "ISODateWithMs" << today_dt.toString(Qt::DateFormat::ISODateWithMs);
    qInfo() << "TextDate" << today_dt.toString(Qt::DateFormat::TextDate);
    qInfo() << "GMT=UTC" << today_dt.toUTC().toString();
    qInfo() << "LocalTime=UTC + 时区差" << today_dt.toLocalTime().toString();
    qInfo() << "后一天" << today_dt.addDays(1).toString("yyyy-MM-dd hh:mm:ss");
    qInfo() << "前一天" << today_dt.addDays(-1).toString("yyyy-MM-dd hh:mm:ss");
    qInfo() << "后一年" << today_dt.addYears(1).toString("yyyy-MM-dd hh:mm:ss");
    qInfo() << "Time" << today_dt.toString("yyyy-MM-dd hh:mm:ss");
    qInfo() << "Time2" << today_dt.toString("yyyy/MM/dd hh:mm:ss");
    qInfo() << "To时间戳(UTC时间戳)" << today_dt.toSecsSinceEpoch();//qt5 toTime_t()
    qInfo() << "From时间戳(UTC时间戳)" << today_dt.fromSecsSinceEpoch(1629105875).toString("yyyy-MM-dd hh:mm:ss");//qt5 fromTime_t()


    qInfo() <<"--------------------------QLocale----------------------------------";
    //The format options Qt::SystemLocaleDate,
    //Qt::SystemLocaleShortDate and Qt::SystemLocaleLongDate
    //shall be removed in Qt 6.
    QLocale lo = QLocale::English;
    qInfo() <<"QLocale::ShortFormat"<<lo.toString(today_dt, QLocale::ShortFormat);
    qInfo() <<"QLocale::LongFormat"<<lo.toString(today_dt, QLocale::LongFormat);
    qInfo() <<"QLocale Standard"<<lo.toString(today_dt,"yyyy/MM/dd ddd");
    return a.exec();
}

14-Qt6 QDatetime

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/96477.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!