summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/posix/Time.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/sys/posix/Time.cpp')
-rw-r--r--cpp/src/qpid/sys/posix/Time.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/cpp/src/qpid/sys/posix/Time.cpp b/cpp/src/qpid/sys/posix/Time.cpp
index d8d0a58d2e..5eb65357f6 100644
--- a/cpp/src/qpid/sys/posix/Time.cpp
+++ b/cpp/src/qpid/sys/posix/Time.cpp
@@ -79,25 +79,28 @@ std::ostream& operator<<(std::ostream& o, const Duration& d) {
return o << int64_t(d) << "ns";
}
-std::ostream& operator<<(std::ostream& o, const AbsTime& t) {
- static const char * month_abbrevs[] = {
- "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"
- };
- struct tm * timeinfo;
- time_t rawtime(t.timepoint/TIME_SEC);
- timeinfo = localtime (&rawtime);
+namespace {
+inline std::ostream& outputFormattedTime(std::ostream& o, const ::time_t* time) {
+ ::tm timeinfo;
char time_string[100];
- sprintf ( time_string,
- "%d-%s-%02d %02d:%02d:%02d",
- 1900 + timeinfo->tm_year,
- month_abbrevs[timeinfo->tm_mon],
- timeinfo->tm_mday,
- timeinfo->tm_hour,
- timeinfo->tm_min,
- timeinfo->tm_sec
- );
+ ::strftime(time_string, 100,
+ "%Y-%m-%d %H:%M:%S",
+ localtime_r(time, &timeinfo));
return o << time_string;
}
+}
+
+std::ostream& operator<<(std::ostream& o, const AbsTime& t) {
+ ::time_t rawtime(t.timepoint/TIME_SEC);
+ return outputFormattedTime(&rawtime);
+}
+
+void outputFormattedNow(std::ostream& o) {
+ ::time_t rawtime;
+ ::time(&rawtime);
+ outputFormattedTime(o, &rawtime);
+ o << " ";
+}
void sleep(int secs) {
::sleep(secs);