<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
QT中獲取時間和日期的主要是 QTime 、QDate 和 QDateTime 這三個類。
通過 QTime 類中提供的時間相關的方法,可以獲取到當前系統時間(時、分、秒、毫秒),需要注意的是,計時的準確性由底層作業系統決定,並不是所有的作業系統都能精確到毫秒級別。
通過呼叫 QTime 類中的 currentTime() 方法可以獲取到當前系統時間:
QTime time = QTime::currentTime(); qDebug() << time; 輸出結果: QTime("12:01:13.427")
如果我們需要獲取字串形式的時間,可以使用 toString() 這個方法:
QTime time = QTime::currentTime(); qDebug() << time.toString("hh:mm:ss"); 輸出結果: "12:01:13"
字串形式的時間輸出格式由 toString() 方法中的 format 參數列決定,可用的參數列如下:
如果我們在顯示時間的同時還需要顯示上午或下午,可以在格式列表新增新增 “AP、A、ap、a” 等選項:
QTime time = QTime::currentTime(); qDebug() << time.toString("hh:mm:ss a"); 輸出結果: "02:29:31 下午"
當你電腦的系統語言使用中文時,不管格式列表中填 AP、A、ap、a 這四個選項裡的哪一個,都只會顯示上午或下午;只有當電腦系統語言使用英文時才會區分大小寫,例如選擇 AP/A,顯示 AM/PM,選擇 ap/a,顯示 am/pm 。
hh欄位的顯示格式受 AP/A 或 ap/a 影響,如果格式列表中使用了 AP/A 或 ap/a 選項區分上下午,則 hh欄位採用12小時制格式顯示;否則使用24小時制格式顯示:
QTime time = QTime::currentTime(); qDebug() << time.toString("hh:mm:ss a"); qDebug() << time.toString("hh:mm:ss"); 輸出結果: "02:50:38 下午" "14:50:38"
HH欄位的顯示格式則不受 AP/A 或 ap/a 影響,不管格式列表中是否使用 AP/A 或 ap/a 選項區分上下午,HH欄位均採用24小時制格式顯示:
QTime time = QTime::currentTime(); qDebug() << time.toString("HH:mm:ss a"); qDebug() << time.toString("HH:mm:ss"); 輸出結果: "14:52:03 下午" "14:52:03"
在格式列表中新增 t 選項可以用來獲取時區資訊:
QTime time = QTime::currentTime(); qDebug() << time.toString("hh:mm:ss t"); 輸出結果: "14:59:02 中國標準時間" 修改時區後輸出結果: "14:00:45 新西伯利亞標準時間"
通過呼叫 QDate 類中的 currentDate() 方法可以獲取到當前系統日期:
QDate date = QDate::currentDate(); qDebug() << date; qDebug() << date.toString("yyyy-MM-dd"); 輸出結果: QDate("2022-04-29") "2022-04-29"
QDate類中對日期的操作與QTime類中對時間的操作基本一樣,需要字串格式的日期時,使用 toString() 方法即可,QDate類中對日期操作常用格式如下:
需要顯示星期時,使用 ddd 或 dddd 選項:
QDate date = QDate::currentDate(); qDebug() << date; qDebug() << date.toString("yyyy-MM-dd ddd"); qDebug() << date.toString("yyyy-MM-dd dddd"); 輸出結果: "2022-04-29 週五" "2022-04-29 星期五"
QDateTime類是 QDate 和 QTime 的組合,提供一系列時間和日期相關的函數。
通過呼叫 QDateTime 類中的 currentDateTime() 方法可以獲取到當前系統時間和日期:
QDateTime dateTime; dateTime = QDateTime::currentDateTime(); qDebug()<<dateTime; qDebug() << dateTime.toString("yyyy-MM-dd hh:mm:ss ddd"); 輸出結果: QDateTime(2022-04-29 15:22:23.615 中國標準時間 Qt::TimeSpec(LocalTime)) "2022-04-29 15:22:23 週五"
使用 toString() 方法將時間和日期轉換成字串形式時,格式與 QTime、QDate 中的格式一樣。
建立一個定時器,每秒獲取一次系統時間和日期,轉換成字串形式後再通過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) { //設定視窗標題和視窗大小 this->setWindowTitle("時間更新顯範例程"); this->resize(500, 100); //建立label物件顯示時間和日期 label = new QLabel(this); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(label); this->setLayout(layout); //初始化時間和日期顯示 dateTime = QDateTime::currentDateTime(); this->label->setText(dateTime.toString("yyyy-MM-dd hh:mm:ss ddd")); //建立定時器定時更新時間和日期 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")); }
百度查了半天,沒找到,就自己寫了一個測試,其實也很簡單,先用QDate去獲取當前的時間,時間格式設定為"yyyy-MM-dd",也就是"年-月-日"的格式,然後再利用字串切割(strtok函數)去切割成獨立的年、月、日就OK啦,程式碼如下(適合懶人一族,直接複製貼上,哈哈^ _ ^)
QDate currentdate = QDate::currentDate(); QString str1 = currentdate.toString("yyyy-MM-dd"); qDebug() << "str1 = " << str1; QByteArray ba = str1.toLatin1();//將QString 轉換為 char *型別 char *dateStr = ba.data();//將QString 轉換為 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;
執行結果如下:
到此這篇關於QT獲取顯示當前時間和日期的文章就介紹到這了,更多相關QT獲取顯示當前時間日期內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45