property output unix seconds since epoch in windows get_system_time_secs, fixes #5155

This commit is contained in:
Juan Linietsky 2016-06-11 14:09:21 -03:00
parent 0bda0fcb3e
commit fc7adf0b4c
1 changed files with 7 additions and 1 deletions

View File

@ -1834,6 +1834,11 @@ uint64_t OS_Windows::get_unix_time() const {
}; };
uint64_t OS_Windows::get_system_time_secs() const { uint64_t OS_Windows::get_system_time_secs() const {
const uint64_t WINDOWS_TICK = 10000000;
const uint64_t SEC_TO_UNIX_EPOCH = 11644473600LL;
SYSTEMTIME st; SYSTEMTIME st;
GetSystemTime(&st); GetSystemTime(&st);
FILETIME ft; FILETIME ft;
@ -1842,7 +1847,8 @@ uint64_t OS_Windows::get_system_time_secs() const {
ret=ft.dwHighDateTime; ret=ft.dwHighDateTime;
ret<<=32; ret<<=32;
ret|=ft.dwLowDateTime; ret|=ft.dwLowDateTime;
return ret;
return (uint64_t)(ret / WINDOWS_TICK - SEC_TO_UNIX_EPOCH);
} }
void OS_Windows::delay_usec(uint32_t p_usec) const { void OS_Windows::delay_usec(uint32_t p_usec) const {