QT 更改本地時間

2021-10-04 13:23:37 字數 1754 閱讀 7812

qt有提供qdatetime類,該類能夠很方便的獲取本地的系統時間,但是並沒有提供設定本地系統時間的方法。

​ 設定本地系統時間有兩種方法,一種是呼叫系統的介面設定,另一種是通過系統命令行設定。

qdatetime datetime;

​ //設定要修改的系統時間,為了方便,直接呼叫了qt的介面獲取了本地系統時間

​ datetime = qdatetime::currentdatetime();

​ //下面使用系統的時間設定介面進行系統時間的修改

​ systemtime st;

​ getsystemtime(&st); // win32 api 獲取系統當前時間,並存入結構體st中

​ st.wyear = datetime.date().year();

​ st.wmonth = datetime.date().month();

​ st.wday = datetime.date().day();

​ st.whour = datetime.time().hour();

​ st.wminute = datetime.time().minute();

​ st.wsecond = datetime.time().second();

​ st.wmilliseconds = datetime.time().msec();

​ sesystemtime(&st); //win32 api 設定系統時間

​ 使用以上的方法設定完系統時間之後,會發現,設定的系統時間與本地時間相差8小時,這是因為時區不同導致的原因。修改如下:

​ 將getsystemtime(&st);修改為:getlocaltime(&st);// win32 api 獲取系統當前時間,並存入結構體st中

​ 將sesystemtime(&st);修改為:selocaltime(&st);//win32 api 設定系統時間

​ 就可以避免因為時區不同而導致的時間相差8小時的問題。

​ 第二種方法,使用系統命令行修改本地時間,在windows系統下,修改時間只能用 date -s yyyy/mm/dd 和 time -s hh:mm:ss

​ 因此導致修改系統時間會使用兩次呼叫命令列操作。

qstring date = "date -s \"2007-08-03 14:15:00\"" 

​ qprocess::startdetached(date);

​ qprocess::startdetached("hwclock -w"); // 同步系統時間

​ qprocess::startdetached("sync"); // 儲存配置

​ 在linux系統下,時鐘分為系統時鐘和硬體時鐘兩種。硬體時鐘是依靠bios電池來維持技術,而我們平時開發的時候基本上用到的是系統時鐘,如一些函式,一些類,都是使用系統時鐘的。

​ 系統重啟時,硬體時鐘就會自動同步到系統時鐘(硬體時鐘寫入到系統時鐘),因此才保證了我們的系統時鐘的連續性。

​ 假設我們在設定系統時鐘之後沒有將系統時鐘同步到硬體時鐘,系統在關機一段時間重啟後,系統時鐘和硬體時間會不一樣。

​ 因此在系統時鐘設定完之後,會有:"hwclock -w"來同步硬體時鐘。

​ 最後儲存配置,就完成了系統時間的設定。

C 更改本地時間

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

Jupyter Notebook 更改本地目錄

首先如果使用anaconda直接安裝jupyter notebook的話,直接在windows的cmd中輸入jupyter notebook是沒有用的,參見下圖 原因可能是anaconda 了所有它安裝的軟體,因此無法直接找到。此時應該在anaconda prompt中直接輸入jupyter not...

Qt 更改螢幕方向

最近專案中涉及到乙個豎屏的專案,螢幕解析度要求800 1600。原本是手動在電腦上設定好的,但不知道是系統不穩定亦或是其他什麼原因,客戶反饋隔一段時間就會出現系統自動改回原定1920 1080解析度。由於機器無人看守,必須自動檢測自動檢測改回。幾經查閱資料,終於找到了以程式設計方式更改螢幕方向的方法...