diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index cdf9b007d18..fea20828224 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -1829,22 +1829,7 @@ String OS_Windows::get_name() { return "Windows"; } -OS::Date OS_Windows::get_date() const { - - SYSTEMTIME systemtime; - if (local) - GetSystemTime(&systemtime); - else - GetLocalTime(&systemtime); - Date date; - date.day=systemtime.wDay; - date.month=Month(systemtime.wMonth); - date.weekday=Weekday(systemtime.wDayOfWeek); - date.year=systemtime.wYear; - date.dst=false; - return date; -} -OS::Time OS_Windows::get_time(bool utc) const { +OS::Date OS_Windows::get_date(bool utc) const { SYSTEMTIME systemtime; if (utc) @@ -1852,11 +1837,13 @@ OS::Time OS_Windows::get_time(bool utc) const { else GetLocalTime(&systemtime); - Time time; - time.hour=systemtime.wHour; - time.min=systemtime.wMinute; - time.sec=systemtime.wSecond; - return time; + Date date; + date.day=systemtime.wDay; + date.month=Month(systemtime.wMonth); + date.weekday=Weekday(systemtime.wDayOfWeek); + date.year=systemtime.wYear; + date.dst=false; + return date; } OS::Time OS_Windows::get_time(bool utc) const { @@ -1889,7 +1876,7 @@ OS::TimeZoneInfo OS_Windows::get_time_zone_info() const { return ret; } -uint64_t OS_Windows::get_unix_time(bool local) const { +uint64_t OS_Windows::get_unix_time() const { FILETIME ft; SYSTEMTIME st; diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 6b2eb19a763..31e030d02eb 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -261,6 +261,7 @@ public: virtual Date get_date(bool utc) const; virtual Time get_time(bool utc) const; + virtual TimeZoneInfo get_time_zone_info() const; virtual uint64_t get_unix_time() const; virtual bool can_draw() const; diff --git a/platform/winrt/os_winrt.cpp b/platform/winrt/os_winrt.cpp index 24037f05d7e..ab5953f9805 100644 --- a/platform/winrt/os_winrt.cpp +++ b/platform/winrt/os_winrt.cpp @@ -442,10 +442,14 @@ String OSWinrt::get_name() { return "WinRT"; } -OS::Date OSWinrt::get_date() const { +OS::Date OSWinrt::get_date(bool utc) const { SYSTEMTIME systemtime; - GetLocalTime(&systemtime); + if (utc) + GetSystemTime(&systemtime); + else + GetLocalTime(&systemtime); + Date date; date.day=systemtime.wDay; date.month=Month(systemtime.wMonth); @@ -485,14 +489,11 @@ OS::TimeZoneInfo OS_Windows::get_time_zone_info() const { return ret; } -uint64_t OSWinrt::get_unix_time(bool utc) const { +uint64_t OSWinrt::get_unix_time() const { FILETIME ft; SYSTEMTIME st; - if (utc) - GetSystemTime(&systemtime); - else - GetLocalTime(&systemtime); + GetSystemTime(&systemtime); SystemTimeToFileTime(&st, &ft); SYSTEMTIME ep; diff --git a/platform/winrt/os_winrt.h b/platform/winrt/os_winrt.h index af44bd338ee..b69feccae9a 100644 --- a/platform/winrt/os_winrt.h +++ b/platform/winrt/os_winrt.h @@ -200,6 +200,7 @@ public: virtual Date get_date(bool utc) const; virtual Time get_time(bool utc) const; + virtual TimeZoneInfo get_time_zone_info() const; virtual uint64_t get_unix_time() const; virtual bool can_draw() const;