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

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

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

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

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

QTime 類

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

通過調(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ù)列表如下:

如果我們在顯示時(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)語言使用中文時(shí),不管格式列表中填 AP、A、ap、a 這四個(gè)選項(xiàng)里的哪一個(gè),都只會顯示上午或下午;只有當(dāng)電腦系統(tǒng)語言使用英文時(shí)才會區(qū)分大小寫,例如選擇 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)可以用來獲取時(shí)區(qū)信息:

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

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

QDate類

通過調(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類中對日期的操作與QTime類中對時(shí)間的操作基本一樣,需要字符串格式的日期時(shí),使用 toString() 方法即可,QDate類中對日期操作常用格式如下:

需要顯示星期時(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ù)。

通過調(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 中國標(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)換成字符串形式后再通過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對象顯示時(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í)間的年、月、日

百度查了半天,沒找到,就自己寫了一個(gè)測試,其實(shí)也很簡單,先用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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

    這篇文章主要介紹了C++讀寫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語言實(shí)現(xiàn)3*3數(shù)組對角線之和示例

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

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

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

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

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

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

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

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

    C語言的字符空間與非字符空間你了解嗎

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

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

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

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

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

最新評論

四会市| 彰化县| 大渡口区| 凤翔县| 蒙城县| 永兴县| 长武县| 日土县| 安龙县| 高雄县| 东兴市| 壤塘县| 尼勒克县| 满洲里市| 龙江县| 高淳县| 天台县| 锡林浩特市| 玉田县| 竹北市| 自治县| 那坡县| 壶关县| 宁蒗| 山东省| 梅河口市| 右玉县| 黔西| 安达市| 邓州市| 乡宁县| 花莲县| 马尔康县| 鄂尔多斯市| 五原县| 忻州市| 高邑县| 宜兰市| 怀化市| 桑日县| 关岭|