您的位置:首页 > 编程语言 > C语言/C++

如何在C++中将filetime时间转化为字符串?

2015-04-28 11:02 169 查看
先将filetime转化为systemtime



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类型:



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);

记住此时要将cstring所在头文件(以及dll)包含到本代码所在cpp文件上即可运行,不一定受限于只能在MFC下才能运行。

注释2:

如果编译器中的long类型为4字节时,则 time_t(typedef
[b]time_t
__int64)[/b]和

filetime(filetime结构体中有两个unsigned long类型的变量)占用字节大小一样(__int64是有符号吧),则filetime先可以转化为time_t,再由time_t转化为tm:

FILETIME是一个__int64。可以这样转化成__int64

filetime 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的时间结构体、时间转换及时间获取

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: