diff options
author | Chris Wilson <chris+github@qwirx.com> | 2006-10-14 15:08:45 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2006-10-14 15:08:45 +0000 |
commit | b0b1c91e8f49470ce6232973f4adb0160a6c021e (patch) | |
tree | 8e75b482986c9e4bf93900ac5de39f11e72b7b5e /lib | |
parent | 668cc1eedb4b61357c4805d94f306d2a08b46a7f (diff) |
* Add option to bbackupquery list command to show times in UTC or local time
(refs #3)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/common/BoxTimeToText.cpp | 38 | ||||
-rw-r--r-- | lib/common/BoxTimeToText.h | 2 |
2 files changed, 27 insertions, 13 deletions
diff --git a/lib/common/BoxTimeToText.cpp b/lib/common/BoxTimeToText.cpp index ff8b2e49..dbeefe1b 100644 --- a/lib/common/BoxTimeToText.cpp +++ b/lib/common/BoxTimeToText.cpp @@ -20,23 +20,31 @@ // -------------------------------------------------------------------------- // // Function -// Name: BoxTimeToISO8601String(box_time_t) -// Purpose: Convert a 64 bit box time to a ISO 8601 complient string +// Name: BoxTimeToISO8601String(box_time_t, bool) +// Purpose: Convert a 64 bit box time to a ISO 8601 compliant +// string, either in local or UTC time // Created: 2003/10/10 // // -------------------------------------------------------------------------- -std::string BoxTimeToISO8601String(box_time_t Time) +std::string BoxTimeToISO8601String(box_time_t Time, bool localTime) { + time_t timeInSecs = BoxTimeToSeconds(Time); + char str[128]; // more than enough space + #ifdef WIN32 struct tm *time; - time_t bob = BoxTimeToSeconds(Time); + __time64_t winTime = timeInSecs; - __time64_t winTime = bob; + if(localTime) + { + time = _localtime64(&winTime); + } + else + { + time = _gmtime64(&winTime); + } - time = _gmtime64(&winTime); - char str[128]; // more than enough space - - if ( time == NULL ) + if(time == NULL) { // ::sprintf(str, "%016I64x ", bob); return std::string("unable to convert time"); @@ -46,11 +54,17 @@ std::string BoxTimeToISO8601String(box_time_t Time) time->tm_mon + 1, time->tm_mday, time->tm_hour, time->tm_min, time->tm_sec); #else // ! WIN32 - time_t timeInSecs = BoxTimeToSeconds(Time); struct tm time; - gmtime_r(&timeInSecs, &time); + + if(localTime) + { + localtime_r(&timeInSecs, &time); + } + else + { + gmtime_r(&timeInSecs, &time); + } - char str[128]; // more than enough space sprintf(str, "%04d-%02d-%02dT%02d:%02d:%02d", time.tm_year + 1900, time.tm_mon + 1, time.tm_mday, time.tm_hour, time.tm_min, time.tm_sec); diff --git a/lib/common/BoxTimeToText.h b/lib/common/BoxTimeToText.h index a25c70b6..21fa5d57 100644 --- a/lib/common/BoxTimeToText.h +++ b/lib/common/BoxTimeToText.h @@ -13,7 +13,7 @@ #include <string> #include "BoxTime.h" -std::string BoxTimeToISO8601String(box_time_t Time); +std::string BoxTimeToISO8601String(box_time_t Time, bool localTime); #endif // BOXTIMETOTEXT__H |