time_t current_time()
{
- return time(0);
+ return time(nullptr);
}
-string const formatted_time(time_t t, string const & fmt)
+docstring formatted_datetime(time_t t, string const & fmt)
{
- struct tm * loc_tm = localtime(&t);
- char date[50];
- strftime(date, sizeof(date), fmt.c_str(), loc_tm);
- return string(date);
+ QString qres;
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0))
+ if (fmt.empty())
+ qres = QLocale().toString(QDateTime::fromSecsSinceEpoch(t),
+ QLocale::ShortFormat);
+ else
+ qres = QLocale().toString(QDateTime::fromSecsSinceEpoch(t),
+ toqstr(fmt));
+#else
+ if (fmt.empty())
+ qres = QLocale().toString(QDateTime::fromTime_t(t),
+ QLocale::ShortFormat);
+ else
+ qres = QLocale().toString(QDateTime::fromTime_t(t), toqstr(fmt));
+#endif
+ return qstring_to_ucs4(qres);
}
-time_t from_ctime(string t)
+time_t from_asctime_utc(string t)
{
// Example for the format: "Sun Nov 6 10:39:39 2011\n"
// Generously remove trailing '\n' (and other whitespace if needed)
<< "ยด (invalid format)");
return static_cast<time_t>(-1);
}
+ loc_dt.setTimeSpec(Qt::UTC);
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0))
+ return loc_dt.toSecsSinceEpoch();
+#else
return loc_dt.toTime_t();
+#endif
}
} // namespace support