如何在C++中将filetime时间转化为字符串?
生活随笔
收集整理的這篇文章主要介紹了
如何在C++中将filetime时间转化为字符串?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先將filetime轉化為systemtime
再
sprintf(strTime,"%d-%d-%d? %d:%d:%d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
SYSTEMTIME?st;? ?? ?? CString?strDate,strTime;? ?? ?? GetLocalTime(&st);? ?? ?? strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);? ?? ?? strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond);
filetime st;
__int64?d?=?*(__int64?*)&st;
//or
//__int64?d2;
//memcpy(&d2,&st,sizeof(d2));
(d -? 116444736000000000)? /? 10000000
再
SYSTEMTIME?st;?
char strTime[128];
sprintf(strTime,"%d-%d-%d? %d:%d:%d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
注釋1:
對于SYSTEMTIME的顯示也可以使用mfc中的Cstring類型:
記住此時要將cstring所在頭文件(以及dll)包含到本代碼所在cpp文件上即可運行,不一定受限于只能在MFC下才能運行。
注釋2:
如果編譯器中的long類型為4字節時,則 time_t(typedef time_t __int64)和
filetime(filetime結構體中有兩個unsigned long類型的變量)占用字節大小一樣(__int64是有符號吧),則filetime先可以轉化為time_t,再由time_t轉化為tm:
FILETIME是一個__int64。可以這樣轉化成__int64filetime st;
__int64?d?=?*(__int64?*)&st;
//or
//__int64?d2;
//memcpy(&d2,&st,sizeof(d2));
(d -? 116444736000000000)? /? 10000000
參見:
FileTime如何轉換為Time_t
FILETIME, SYSTEMTIME 與 time_t 相互轉換
Windows API的時間結構體、時間轉換及時間獲取
總結
以上是生活随笔為你收集整理的如何在C++中将filetime时间转化为字符串?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 后台和前端的消息提醒_滴滴Ja
- 下一篇: s3c2440移植MQTT