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

120 篇文章 6 订阅
将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类型:

  1. SYSTEMTIME st;     
  2.   
  3. CString strDate,strTime;     
  4.   
  5. GetLocalTime(&st);     
  6.   
  7. strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);     
  8.   
  9. strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond);

记住此时要将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 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的时间结构体、时间转换及时间获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值