diff options
author | est31 <MTest31@outlook.com> | 2015-06-06 03:40:56 +0200 |
---|---|---|
committer | est31 <MTest31@outlook.com> | 2015-06-06 05:55:28 +0200 |
commit | 803069886ebca492c0d5f47133ccf7833c716e5a (patch) | |
tree | 711fbad4ba24fe58c7284e177a16bea6adc9eef5 /drivers | |
parent | 26ea12a873d0e7c1467ee6b52c9559dc5f456bd3 (diff) |
Add utc param to get_time and get_date methods
If utc == false, we return the local time, like before.
Otherwise, we return UTC time.
utc defaults to false to not break behaviour.
Diffstat (limited to 'drivers')
-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; |