'2011/08/10'에 해당되는 글 1건
- 2011/08/10 :: Win32 SYSTEMTIME, FILETIME과 Unix Timestamp간의 변환.
분류없음
2011/08/10 23:06
void UnixTimeToFileTime(time_t* pt, LPFILETIME pft) {
LONGLONG ll; // 64 bit value
ll = Int32x32To64(*pt, 10000000) + 116444736000000000L;
pft->dwLowDateTime = (DWORD) ll;
pft->dwHighDateTime = (DWORD)(ll >> 32);
}
void FileTimeToUnixTime(LPFILETIME pft, AC_UINT64* pt) {
LONGLONG ll; // 64 bit value
ll = (((LONGLONG)(pft->dwHighDateTime)) << 32) + pft->dwLowDateTime;
*pt = (time_t)((ll - 116444736000000000L) / 10000000L);
}
void UnixTimeToSystemTime(time_t* pt, LPSYSTEMTIME pst) {
FILETIME ft;
UnixTimeToFileTime(pt, &ft);
FileTimeToSystemTime(&ft, pst);
}
void SystemTimeToUnixTime(LPSYSTEMTIME pst, AC_UINT64* pt) {
FILETIME ft;
SystemTimeToFileTime(pst, &ft);
FileTimeToUnixTime(&ft, pt);
}
