vc有什么api算1970年的毫秒数转换到当前时间,比如java有 SimpleDateFormat.format可以将一个LongLong型的值,比如说1306334020009转为2011年5月X日,X时,X分的格式。
void MillisecondSince1970ToSystemTime(LONGLONG nMillisecond, SYSTEMTIME *lpstTime)
{
LARGE_INTEGER liTime;
liTime.QuadPart = nMillisecond;
// 先转换为100微秒单位的FILETIME
liTime.QuadPart *= 10000;
// FILETIME是1960年开始的,需要和1970年进行转换
liTime.QuadPart += 116444736000000000;
// 转换成SYSTEMTIME
::FileTimeToSystemTime((LPFILETIME)&liTime, lpstTime);
}
int _tmain(int argc, _TCHAR* argv[])
{
// 获取当前时间模拟输入数据
LONGLONG nFileTime;
SYSTEMTIME stTime;
::GetLocalTime(&stTime);
::SystemTimeToFileTime(&stTime, (LPFILETIME)&nFileTime);
nFileTime -= 116444736000000000;
nFileTime /= 10000;
// 调用转换函数
MillisecondSince1970ToSystemTime(nFileTime, &stTime);
// 输出字符串
::printf("%04d-%02d-%02d %02d:%02d:%02d",
stTime.wYear, stTime.wMonth, stTime.wDay,
stTime.wHour, stTime.wMinute, stTime.wSecond);
}
参考:https://bbs.csdn.net/topics/360244981