summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-08-25 13:22:32 +0100
committerCarl Hetherington <cth@carlh.net>2013-08-25 13:22:32 +0100
commitb3e7a9625f860e7d83c4077b24fe811eb9941456 (patch)
treef2f12cfb9e98c99bcc5b3a6a5a852223dae7ed20 /src
parentf976e8ac94dfc6130797c5d98a0399321dce43e7 (diff)
parentbbf265955518069c5c841be5fe02a95b60e9197b (diff)
Merge branch 'master' into interop
Diffstat (limited to 'src')
-rw-r--r--src/metadata.cc27
-rw-r--r--src/metadata.h6
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);
};
}