diff options
Diffstat (limited to 'drivers/unix')
-rw-r--r-- | drivers/unix/os_unix.cpp | 17 | ||||
-rw-r--r-- | drivers/unix/os_unix.h | 4 |
2 files changed, 14 insertions, 7 deletions
diff --git a/drivers/unix/os_unix.cpp b/drivers/unix/os_unix.cpp index d558aadc8e..afb85e49e8 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -218,10 +218,14 @@ uint64_t OS_Unix::get_unix_time() const { }; -OS::Date OS_Unix::get_date() const { +OS::Date OS_Unix::get_date(bool utc) const { time_t t=time(NULL); - struct tm *lt=localtime(&t); + struct tm *lt; + if (utc) + lt=gmtime(&t); + else + lt=localtime(&t); Date ret; ret.year=1900+lt->tm_year; ret.month=(Month)lt->tm_mon; @@ -231,10 +235,13 @@ OS::Date OS_Unix::get_date() const { return ret; } -OS::Time OS_Unix::get_time() const { - +OS::Time OS_Unix::get_time(bool utc) const { time_t t=time(NULL); - struct tm *lt=localtime(&t); + struct tm *lt; + if (utc) + lt=gmtime(&t); + else + lt=localtime(&t); Time ret; ret.hour=lt->tm_hour; ret.min=lt->tm_min; diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h index 65df113956..bafa590d5f 100644 --- a/drivers/unix/os_unix.h +++ b/drivers/unix/os_unix.h @@ -88,8 +88,8 @@ public: virtual String get_name(); - virtual Date get_date() const; - virtual Time get_time() const; + virtual Date get_date(bool utc) const; + virtual Time get_time(bool utc) const; virtual uint64_t get_unix_time() const; |