最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

QT獲取顯示當(dāng)前時(shí)間和日期的方法(用QTime,QDate和QDateTime)

 更新時(shí)間:2022年08月11日 10:39:40   作者:YJer  
獲取當(dāng)期日期時(shí)間在我們?nèi)粘i_(kāi)發(fā)中經(jīng)常會(huì)遇到,下面這篇文章主要給大家介紹了關(guān)于QT獲取顯示當(dāng)前時(shí)間和日期的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

獲取當(dāng)前時(shí)間和日期

QT中獲取時(shí)間和日期的主要是 QTime 、QDate 和 QDateTime 這三個(gè)類。

QTime 類

通過(guò) QTime 類中提供的時(shí)間相關(guān)的方法,可以獲取到當(dāng)前系統(tǒng)時(shí)間(時(shí)、分、秒、毫秒),需要注意的是,計(jì)時(shí)的準(zhǔn)確性由底層操作系統(tǒng)決定,并不是所有的操作系統(tǒng)都能精確到毫秒級(jí)別。

通過(guò)調(diào)用 QTime 類中的 currentTime() 方法可以獲取到當(dāng)前系統(tǒng)時(shí)間:

QTime time = QTime::currentTime();
qDebug() << time;

輸出結(jié)果:
QTime("12:01:13.427")

如果我們需要獲取字符串形式的時(shí)間,可以使用 toString() 這個(gè)方法:

QTime time = QTime::currentTime();
qDebug() << time.toString("hh:mm:ss");

輸出結(jié)果:
"12:01:13"

字符串形式的時(shí)間輸出格式由 toString() 方法中的 format 參數(shù)列表決定,可用的參數(shù)列表如下:

如果我們?cè)陲@示時(shí)間的同時(shí)還需要顯示上午或下午,可以在格式列表添加添加 “AP、A、ap、a” 等選項(xiàng):

QTime time = QTime::currentTime();
qDebug() << time.toString("hh:mm:ss a");

輸出結(jié)果:
"02:29:31 下午"

當(dāng)你電腦的系統(tǒng)語(yǔ)言使用中文時(shí),不管格式列表中填 AP、A、ap、a 這四個(gè)選項(xiàng)里的哪一個(gè),都只會(huì)顯示上午或下午;只有當(dāng)電腦系統(tǒng)語(yǔ)言使用英文時(shí)才會(huì)區(qū)分大小寫(xiě),例如選擇 AP/A,顯示 AM/PM,選擇 ap/a,顯示 am/pm 。

hh字段的顯示格式受 AP/A 或 ap/a 影響,如果格式列表中使用了 AP/A 或 ap/a 選項(xiàng)區(qū)分上下午,則 hh字段采用12小時(shí)制格式顯示;否則使用24小時(shí)制格式顯示:

QTime time = QTime::currentTime();
qDebug() << time.toString("hh:mm:ss a");
qDebug() << time.toString("hh:mm:ss");

輸出結(jié)果:
"02:50:38 下午"
"14:50:38"

HH字段的顯示格式則不受 AP/A 或 ap/a 影響,不管格式列表中是否使用 AP/A 或 ap/a 選項(xiàng)區(qū)分上下午,HH字段均采用24小時(shí)制格式顯示:

QTime time = QTime::currentTime();
qDebug() << time.toString("HH:mm:ss a");
qDebug() << time.toString("HH:mm:ss");

輸出結(jié)果:
"14:52:03 下午"
"14:52:03"

在格式列表中添加 t 選項(xiàng)可以用來(lái)獲取時(shí)區(qū)信息:

QTime time = QTime::currentTime();
qDebug() << time.toString("hh:mm:ss t");

輸出結(jié)果:
"14:59:02 中國(guó)標(biāo)準(zhǔn)時(shí)間"
    
修改時(shí)區(qū)后輸出結(jié)果:
"14:00:45 新西伯利亞標(biāo)準(zhǔn)時(shí)間"

QDate類

通過(guò)調(diào)用 QDate 類中的 currentDate() 方法可以獲取到當(dāng)前系統(tǒng)日期:

QDate date = QDate::currentDate();
qDebug() << date;
qDebug() << date.toString("yyyy-MM-dd");

輸出結(jié)果:
QDate("2022-04-29")
"2022-04-29"

QDate類中對(duì)日期的操作與QTime類中對(duì)時(shí)間的操作基本一樣,需要字符串格式的日期時(shí),使用 toString() 方法即可,QDate類中對(duì)日期操作常用格式如下:

需要顯示星期時(shí),使用 ddd 或 dddd 選項(xiàng):

QDate date = QDate::currentDate();
qDebug() << date;
qDebug() << date.toString("yyyy-MM-dd ddd");
qDebug() << date.toString("yyyy-MM-dd dddd");

輸出結(jié)果:
"2022-04-29 周五"
"2022-04-29 星期五"

QDateTime類

QDateTime類是 QDate 和 QTime 的組合,提供一系列時(shí)間和日期相關(guān)的函數(shù)。

通過(guò)調(diào)用 QDateTime 類中的 currentDateTime() 方法可以獲取到當(dāng)前系統(tǒng)時(shí)間和日期:

QDateTime dateTime;
dateTime = QDateTime::currentDateTime();
qDebug()<<dateTime;
qDebug() << dateTime.toString("yyyy-MM-dd hh:mm:ss ddd");

輸出結(jié)果:
QDateTime(2022-04-29 15:22:23.615 中國(guó)標(biāo)準(zhǔn)時(shí)間 Qt::TimeSpec(LocalTime))
"2022-04-29 15:22:23 周五"

使用 toString() 方法將時(shí)間和日期轉(zhuǎn)換成字符串形式時(shí),格式與 QTime、QDate 中的格式一樣。

定時(shí)更新顯示時(shí)間和日期

創(chuàng)建一個(gè)定時(shí)器,每秒獲取一次系統(tǒng)時(shí)間和日期,轉(zhuǎn)換成字符串形式后再通過(guò)Label空間顯示即可完整代碼如下:

main.cpp

#include "dateTime.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    DateTime w;
    w.show();
    return a.exec();
}

dateTime.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QDateTime>
#include <QDebug>
#include <QTimer>
#include <QLabel>
#include <QVBoxLayout>
#include <QApplication>

class DateTime : public QWidget
{
    Q_OBJECT

public:
    DateTime(QWidget *parent = nullptr);
    ~DateTime();

    void timeUpdate(void);

private:
    QDateTime dateTime;
    QTimer *timer;
    QLabel *label;
};
#endif

dateTime.cpp

#include "dateTime.h"

DateTime::DateTime(QWidget *parent)
    : QWidget(parent)
{
    //設(shè)置窗口標(biāo)題和窗口大小
    this->setWindowTitle("時(shí)間更新顯示例程");
    this->resize(500, 100);

    //創(chuàng)建label對(duì)象顯示時(shí)間和日期
    label = new QLabel(this);

    QVBoxLayout *layout = new QVBoxLayout(this);
    layout->addWidget(label);
    this->setLayout(layout);

    //初始化時(shí)間和日期顯示
    dateTime = QDateTime::currentDateTime();
    this->label->setText(dateTime.toString("yyyy-MM-dd hh:mm:ss ddd"));

    //創(chuàng)建定時(shí)器定時(shí)更新時(shí)間和日期
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this, &DateTime::timeUpdate);
    timer->start(1000);
}

DateTime::~DateTime()
{
    delete timer;
}

void DateTime::timeUpdate(void)
{
    dateTime = QDateTime::currentDateTime();
    this->label->setText(dateTime.toString("yyyy-MM-dd hh:mm:ss ddd"));
}


補(bǔ)充:QT中分別獲取當(dāng)前時(shí)間的年、月、日

百度查了半天,沒(méi)找到,就自己寫(xiě)了一個(gè)測(cè)試,其實(shí)也很簡(jiǎn)單,先用QDate去獲取當(dāng)前的時(shí)間,時(shí)間格式設(shè)置為"yyyy-MM-dd",也就是"年-月-日"的格式,然后再利用字符串切割(strtok函數(shù))去切割成獨(dú)立的年、月、日就OK啦,代碼如下(適合懶人一族,直接復(fù)制粘貼,哈哈^ _ ^)

QDate currentdate = QDate::currentDate();
QString str1 = currentdate.toString("yyyy-MM-dd");
qDebug() << "str1 = " << str1;
QByteArray ba = str1.toLatin1();//將QString 轉(zhuǎn)換為 char *類型
char *dateStr = ba.data();//將QString 轉(zhuǎn)換為 char *類型
char *year = strtok(dateStr,"-");
char *month = strtok(NULL,"-");
char *date = strtok(NULL,"-");
qDebug() << "year is:" << year;
qDebug() << "month is:" << month;
qDebug() << "date is:" << date;

運(yùn)行結(jié)果如下:

總結(jié)

到此這篇關(guān)于QT獲取顯示當(dāng)前時(shí)間和日期的文章就介紹到這了,更多相關(guān)QT獲取顯示當(dāng)前時(shí)間日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言修煉之路悟徹?cái)?shù)組真妙理?巧用下標(biāo)破萬(wàn)敵上篇

    C語(yǔ)言修煉之路悟徹?cái)?shù)組真妙理?巧用下標(biāo)破萬(wàn)敵上篇

    在C語(yǔ)言和C++等語(yǔ)言中,數(shù)組元素全為指針變量的數(shù)組稱為指針數(shù)組,指針數(shù)組中的元素都必須具有相同的存儲(chǔ)類型、指向相同數(shù)據(jù)類型的指針變量。指針數(shù)組比較適合用來(lái)指向若干個(gè)字符串,使字符串處理更加方便、靈活
    2022-02-02
  • C++讀寫(xiě)INI配置文件的類實(shí)例

    C++讀寫(xiě)INI配置文件的類實(shí)例

    這篇文章主要介紹了C++讀寫(xiě)INI配置文件的類,實(shí)例分析了C++操作ini配置文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C/C++產(chǎn)生指定范圍和不定范圍隨機(jī)數(shù)的實(shí)例代碼

    C/C++產(chǎn)生指定范圍和不定范圍隨機(jī)數(shù)的實(shí)例代碼

    C/C++產(chǎn)生隨機(jī)數(shù)用到兩個(gè)函數(shù)rand() 和 srand(),這里介紹不指定范圍產(chǎn)生隨機(jī)數(shù)和指定范圍產(chǎn)生隨機(jī)數(shù)的方法代碼大家參考使用
    2013-11-11
  • C語(yǔ)言實(shí)現(xiàn)3*3數(shù)組對(duì)角線之和示例

    C語(yǔ)言實(shí)現(xiàn)3*3數(shù)組對(duì)角線之和示例

    今天小編就為大家分享一篇C語(yǔ)言實(shí)現(xiàn)3*3數(shù)組對(duì)角線之和示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • C語(yǔ)言實(shí)現(xiàn)走迷宮

    C語(yǔ)言實(shí)現(xiàn)走迷宮

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)走迷宮,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 如何用C語(yǔ)言實(shí)現(xiàn)通用的冒泡排序算法

    如何用C語(yǔ)言實(shí)現(xiàn)通用的冒泡排序算法

    這篇文章主要介紹了如何用C語(yǔ)言實(shí)現(xiàn)通用的冒泡排序算法的相關(guān)資料該算法支持不同數(shù)據(jù)類型的排序,通過(guò)使用void*指針和函數(shù)指針,實(shí)現(xiàn)了類型無(wú)關(guān)性和比較函數(shù)的靈活性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • C++將保存char、int 和double到txt文件中

    C++將保存char、int 和double到txt文件中

    這篇文章主要介紹了C++如何將保存char、int 和double到txt文件中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語(yǔ)言的字符空間與非字符空間你了解嗎

    C語(yǔ)言的字符空間與非字符空間你了解嗎

    這篇文章主要介紹了C語(yǔ)言的字符空間與非字符空間,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下,希望能給你帶來(lái)幫助
    2021-08-08
  • C++實(shí)現(xiàn)LeetCode(119.楊輝三角之二)

    C++實(shí)現(xiàn)LeetCode(119.楊輝三角之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(119.楊輝三角之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語(yǔ)言 超詳細(xì)講解庫(kù)函數(shù)

    C語(yǔ)言 超詳細(xì)講解庫(kù)函數(shù)

    C語(yǔ)言庫(kù)函數(shù)是把自定義函數(shù)放到庫(kù)里,是別人把一些常用到的函數(shù)編完放到一個(gè)文件里,供程序員使用,下面讓我們一起來(lái)詳細(xì)了解它
    2022-03-03

最新評(píng)論

娄烦县| 信阳市| 邵阳县| 舒城县| 二连浩特市| 闸北区| 清河县| 萍乡市| 光山县| 固阳县| 临汾市| 乌什县| 隆化县| 大荔县| 湘阴县| 铜川市| 保山市| 营山县| 将乐县| 合阳县| 阳山县| 武夷山市| 上高县| 海安县| 无极县| 改则县| 阿城市| 易门县| 孟州市| 扶余县| 潢川县| 都昌县| 宝坻区| 丹东市| 芜湖市| 新建县| 宁陕县| 大连市| 威宁| 雷波县| 五莲县|