自学内容网 自学内容网

QDateTime 使用

        QDateTime 是 Qt 框架中用于处理日期和时间的类。本篇文章详细介绍、通过示例 快速了解QDateTime的各种操作,包括: 当前时间、获取日期和时间、获取日期、获取时间、获取时间戳、格式化输出、年、月、日、QTime时间、获取微妙、操作日期和时间、添加时间、减去时间、指定时间、比较时间、时区处理、设置时区、查询时区、常用时区、转换时区、有效性等操作

转载请附上文章出处与本文链接。

QDateTime 使用详解目录

1 当前时间

2 获取日期和时间

2.1 获取日期

2.2 获取时间

2.3 获取时间戳

3 格式化输出

3.1 字符串

3.2 年

3.3 月

3.4 日

3.5 其它

4 QTime

4.1 获取年月日

4.2 获取微妙

5 操作日期和时间

5.1 添加时间

5.2 减去时间

5.3 指定时间

6 比较时间

7 时区处理

7.1 设置时区

7.2 查询时区

7.3 常用时区

7.4 转换时区

8 有效性

9 .h源文件

10 .cpp

1 当前时间
    QDateTime currentDateTime = QDateTime::currentDateTime();
 
    qDebug() << currentDateTime;    
 
    //QDateTime(2024-10-08 01:36:56.886 中国标准时间 Qt::LocalTime)
2 获取日期和时间
2.1 获取日期
    QDate date = currentDateTime.date();
 
    qDebug() << date;
 
    QDate("2024-10-08")
2.2 获取时间
    QTime time = currentDateTime.time();
 
    qDebug() << time;
 
    QTime("01:50:30.786")
2.3 获取时间戳
    qint64 timestamp = currentDateTime.toMSecsSinceEpoch();
 
    qDebug() << timestamp;
 
    1728323430786
 
 
 
 
    QDateTime dateTime;
    dateTime.setMSecsSinceEpoch(timestamp);
    dateTime.toString("yyyy-MM-dd hh:mm:ss");
3 格式化输出
3.1 字符串
    QString formattedString = currentDateTime.toString("yyyy-MM-dd HH:mm:ss zzz");
 
    qDebug() << formattedString;
 
    "2024-10-08 01:54:59 638"
3.2 年
    //年
    formattedString = currentDateTime.toString("yyyy");
 
    qDebug() << formattedString;
3.3 月
    //月
    formattedString = currentDateTime.toString("MM");
 
    qDebug() << formattedString;
3.4 日
    //日
    formattedString = currentDateTime.toString("dd");
 
    qDebug() << formattedString;
3.5 其它
// 时、分、秒、毫秒 同上
4 QTime
4.1 获取年月日
    int year = currentDateTime.date().year();   // 获取年份
 
    int month = currentDateTime.date().month(); // 获取月份
 
    int day = currentDateTime.date().day();     // 获取日期
 
    qDebug() << "年:" << year << "月:" << month << "日:" << day;
 
    年: 2024 月: 10 日: 8
4.2 获取微妙
    QTime time = currentDateTime.time();
 
    int milliseconds = time.msec(); // 获取毫秒
 
    int microseconds = milliseconds * 1000; // 转换为微秒
 
    qDebug() << "微秒:" << microseconds;
 
    微秒: 244000
5 操作日期和时间
5.1 添加时间
    //添加时间:
    QDateTime futureDateTime = currentDateTime.addDays(5); // 添加5天
 
    qDebug() << futureDateTime;
 
    QDateTime(2024-10-13 02:07:11.244 中国标准时间 Qt::LocalTime)
5.2 减去时间
    //减去时间:
    QDateTime pastDateTime = currentDateTime.addMonths(-1); // 减去1个月
 
    qDebug() << pastDateTime;
 
    QDateTime(2024-09-08 02:07:11.244 中国标准时间 Qt::LocalTime)
5.3 指定时间
    QDateTime specificDateTime(QDate(2023, 10, 1), QTime(12, 30, 0));
 
    qDebug() << specificDateTime;    
 
    //QDateTime(2023-10-01 12:30:00.000 中国标准时间 Qt::LocalTime)
6 比较时间
    //比较两个 QDateTime 对象:
    if (currentDateTime < specificDateTime)
    {
        // currentDateTime 早于 specificDateTime
    }
7 时区处理
7.1 设置时区
    QTimeZone timeZone("Asia/Shanghai");
 
    QDateTime dateTimeInZone = currentDateTime.toTimeZone(timeZone);
7.2 查询时区
    // 获取所有可用的时区 ID
    QStringList timeZoneIds = QTimeZone::availableTimeZoneIds();
 
    // 打印所有时区 ID
    foreach (const QString &id, timeZoneIds)
    {
        qDebug() << id;
    }
7.3 常用时区
UTC:协调世界时
 
Asia/Shanghai:中国标准时间
 
America/New_York:东部标准时间
 
Europe/London:格林威治标准时间
 
Asia/Tokyo:日本标准时间
7.4 转换时区
QDateTime utcDateTime = currentDateTime.toUTC();
8 有效性
    //检查有效性:
    if (currentDateTime.isValid())
    {
        // 当前时间有效
    }
9 .h源文件
#pragma once
 
#include <QtWidgets/QMainWindow>
#include "ui_QDateTimeTest.h"
 
#include <QDebug>
#include <QDateTime>
#include <QTimeZone>
#pragma execution_character_set("utf-8")
class QDateTimeTest : public QMainWindow
{
    Q_OBJECT
 
public:
    QDateTimeTest(QWidget *parent = nullptr);
    ~QDateTimeTest();
 
private:
    Ui::QDateTimeTestClass ui;
};

10 .cpp
#include "QDateTimeTest.h"
 
QDateTimeTest::QDateTimeTest(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
 
    QDateTime currentDateTime = QDateTime::currentDateTime();
    qDebug() << currentDateTime;    //QDateTime(2024-10-08 01:36:56.886 中国标准时间 Qt::LocalTime)
 
 
    ///@ 获取日期和时间
    qDebug() << "获取日期和时间";
 
    //获取日期:
    QDate date = currentDateTime.date();
    qDebug() << date;
 
    //获取时间:
    QTime time = currentDateTime.time();
    qDebug() << time;
 
    //获取时间戳:
    qint64 timestamp = currentDateTime.toMSecsSinceEpoch();
    qDebug() << timestamp;
 
    ///@ 格式化输出
    qDebug() << "格式化输出";
 
    //格式化为字符串:
    QString formattedString = currentDateTime.toString("yyyy-MM-dd HH:mm:ss zzz");
    qDebug() << formattedString;
 
    //年
    formattedString = currentDateTime.toString("yyyy");
    qDebug() << formattedString;
 
    //月
    formattedString = currentDateTime.toString("MM");
    qDebug() << formattedString;
 
    //日
    formattedString = currentDateTime.toString("dd");
    qDebug() << formattedString;
 
    // 时、分、秒、毫秒类似
 
 
 
    ///@ QTime
 
 
 
    int year = currentDateTime.date().year();   // 获取年份
    int month = currentDateTime.date().month(); // 获取月份
    int day = currentDateTime.date().day();     // 获取日期
 
    qDebug() << "年:" << year << "月:" << month << "日:" << day;
 
 
    time = currentDateTime.time();
    int milliseconds = time.msec(); // 获取毫秒
    int microseconds = milliseconds * 1000; // 转换为微秒
    qDebug() << "微秒:" << microseconds;
 
 
    ///@ 操作日期和时间
    qDebug() << "操作日期和时间";
 
    //添加时间:
    QDateTime futureDateTime = currentDateTime.addDays(5); // 添加5天
    qDebug() << futureDateTime;
 
    //减去时间:
    QDateTime pastDateTime = currentDateTime.addMonths(-1); // 减去1个月
    qDebug() << pastDateTime;
 
 
 
 
    QDateTime specificDateTime(QDate(2023, 10, 1), QTime(12, 30, 0));
 
    qDebug() << specificDateTime;    //QDateTime(2023-10-01 12:30:00.000 中国标准时间 Qt::LocalTime)
 
 
 
    ///@ 比较
 
    //比较两个 QDateTime 对象:
    if (currentDateTime < specificDateTime)
    {
        // currentDateTime 早于 specificDateTime
    }
 
 
 
 
    ///@ 时区处理
 
    //设置时区:
    QTimeZone timeZone("Asia/Shanghai");
    QDateTime dateTimeInZone = currentDateTime.toTimeZone(timeZone);
 
    //获取时区:
    QTimeZone currentZone = currentDateTime.timeZone();
 
    ///@ 其他方法
 
    //检查有效性:
    if (currentDateTime.isValid())
    {
        // 当前时间有效
    }
 
    //转换为 UTC:
    QDateTime utcDateTime = currentDateTime.toUTC();
 
}
 
QDateTimeTest::~QDateTimeTest()
{
 
 
 
}
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_37529913/article/details/142749502


原文地址:https://blog.csdn.net/zyh506458036/article/details/143624922

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!