各类时间转换(FILETIME,time_t,tm,QDateTime,SystemTime,LocalTime)

FILETIME转SystemTime和本地系统时间 需要先将FILETIME转为LocalFile […]

2020年3月3日

FILETIME转SystemTime和本地系统时间

需要先将FILETIME转为LocalFileTime
再将LocalFileTime 转为SystemTime 即为本地的系统时间

FILETIME ftcreate;
FILETIME localtime;
ftcreate.dwLowDateTime = -1491005215;
ftcreate.dwHighDateTime = 30690861;
SYSTEMTIME stcreate;
FileTimeToLocalFileTime(&ftcreate, &localtime);
FileTimeToSystemTime(&localtime, &stcreate);

此时
stcreate {
wYear=2018,
wMonth=9,
wDayOfWeek=1,
wDay=17,
wHour=10,
wMinute=25,
wSecond=8,
wMilliseconds=504
}
即2018年9月17日星期一 10:25:08

若直接将FILETIME转为SystemTime会得到Windows的系统时间,就是格林威治时间(UTC-Time)
格林威治时间(UTC-Time)=本地时间减去8个小时

FILETIME ftcreate;
ftcreate.dwLowDateTime = -1491005215;
ftcreate.dwHighDateTime = 30690861;
SYSTEMTIME stcreate;
FileTimeToSystemTime(&ftcreate, &stcreate);

此时
stcreate {
wYear=2018,
wMonth=9,
wDayOfWeek=1,
wDay=17,
wHour=2,
wMinute=25,
wSecond=8,
wMilliseconds=504
}
即2018年9月17日星期一 02:25:08

打赏 0

共有 0 条评论