diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-08-25 13:22:32 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-08-25 13:22:32 +0100 |
| commit | b3e7a9625f860e7d83c4077b24fe811eb9941456 (patch) | |
| tree | f2f12cfb9e98c99bcc5b3a6a5a852223dae7ed20 /src | |
| parent | f976e8ac94dfc6130797c5d98a0399321dce43e7 (diff) | |
| parent | bbf265955518069c5c841be5fe02a95b60e9197b (diff) | |
Merge branch 'master' into interop
Diffstat (limited to 'src')
| -rw-r--r-- | src/metadata.cc | 27 | ||||
| -rw-r--r-- | src/metadata.h | 6 |
2 files changed, 19 insertions, 14 deletions
diff --git a/src/metadata.cc b/src/metadata.cc index 5304fd96..bcf5d76c 100644 --- a/src/metadata.cc +++ b/src/metadata.cc @@ -52,25 +52,30 @@ void XMLMetadata::set_issue_date_now () { char buffer[64]; - time_t now; - time (&now); + time_t now = time (0); struct tm* tm = localtime (&now); -#ifdef LIBDCP_POSIX - strftime (buffer, 64, "%Y-%m-%dT%I:%M:%S%z", tm); - issue_date = string (buffer); -#else - /* No %z for strftime on Windows: it will seemingly be interpreted as %Z and will - output some localised string describing the timezone */ strftime (buffer, 64, "%Y-%m-%dT%I:%M:%S", tm); + int offset = 0; + +#ifdef LIBDCP_POSIX + + offset = tm->tm_gmtoff / 60; + +#else TIME_ZONE_INFORMATION tz; GetTimeZoneInformation (&tz); - issue_date = string (buffer) + bias_to_string (tz.Bias); + offset = tz.Bias; #endif + + issue_date = string (buffer) + utc_offset_to_string (offset); } +/** @param b Offset from UTC to local time in minutes. + * @return string of the form e.g. -01:00. + */ string -XMLMetadata::bias_to_string (int b) +XMLMetadata::utc_offset_to_string (int b) { bool const negative = (b < 0); b = negative ? -b : b; @@ -85,6 +90,6 @@ XMLMetadata::bias_to_string (int b) o << "+"; } - o << setw(2) << setfill('0') << hours << setw(2) << setfill('0') << minutes; + o << setw(2) << setfill('0') << hours << ":" << setw(2) << setfill('0') << minutes; return o.str (); } diff --git a/src/metadata.h b/src/metadata.h index 7ba17fa4..d71537fd 100644 --- a/src/metadata.h +++ b/src/metadata.h @@ -26,7 +26,7 @@ #include <string> -class bias_to_string_test; +class utc_offset_to_string_test; namespace libdcp { @@ -53,9 +53,9 @@ public: std::string issue_date; private: - friend class ::bias_to_string_test; + friend class ::utc_offset_to_string_test; - static std::string bias_to_string (int); + static std::string utc_offset_to_string (int); }; } |
