qt有提供qdatetime類,該類能夠很方便的獲取本地的系統時間,但是並沒有提供設定本地系統時間的方法。
設定本地系統時間有兩種方法,一種是呼叫系統的介面設定,另一種是通過系統命令行設定。
使用以上的方法設定完系統時間之後,會發現,設定的系統時間與本地時間相差8小時,這是因為時區不同導致的原因。修改如下: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 設定系統時間
將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
因此導致修改系統時間會使用兩次呼叫命令列操作。
在linux系統下,時鐘分為系統時鐘和硬體時鐘兩種。硬體時鐘是依靠bios電池來維持技術,而我們平時開發的時候基本上用到的是系統時鐘,如一些函式,一些類,都是使用系統時鐘的。qstring date = "date -s \"2007-08-03 14:15:00\""
qprocess::startdetached(date);
qprocess::startdetached("hwclock -w"); // 同步系統時間
qprocess::startdetached("sync"); // 儲存配置
系統重啟時,硬體時鐘就會自動同步到系統時鐘(硬體時鐘寫入到系統時鐘),因此才保證了我們的系統時鐘的連續性。
假設我們在設定系統時鐘之後沒有將系統時鐘同步到硬體時鐘,系統在關機一段時間重啟後,系統時鐘和硬體時間會不一樣。
因此在系統時鐘設定完之後,會有:"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解析度。由於機器無人看守,必須自動檢測自動檢測改回。幾經查閱資料,終於找到了以程式設計方式更改螢幕方向的方法...