3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS.
13 #include "support/lyxtime.h"
15 #include "support/debug.h"
16 #include "support/environment.h"
17 #include "support/lstrings.h"
18 #include "support/qstring_helpers.h"
34 docstring formatted_datetime(time_t t, string const & fmt)
38 qres = QLocale().toString(QDateTime::fromTime_t(t),
39 QLocale::ShortFormat);
41 qres = QLocale().toString(QDateTime::fromTime_t(t), toqstr(fmt));
42 return qstring_to_ucs4(qres);
46 time_t from_asctime_utc(string t)
48 // Example for the format: "Sun Nov 6 10:39:39 2011\n"
49 // Generously remove trailing '\n' (and other whitespace if needed)
50 t = trim(t, " \t\r\n");
51 // toDateTime() is too stupid to recognize variable amounts of
52 // whitespace (needed because ctime() outputs double spaces before
53 // single digit day numbers and hours)
54 t = subst(t, " ", " ");
55 QString const format("ddd MMM d H:mm:ss yyyy");
57 QDateTime loc_dt = loc.toDateTime(toqstr(t), format);
58 if (!loc_dt.isValid()) {
59 LYXERR(Debug::LOCALE, "Could not parse `" << t
60 << "ยด (invalid format)");
61 return static_cast<time_t>(-1);
63 loc_dt.setTimeSpec(Qt::UTC);
64 return loc_dt.toTime_t();
67 } // namespace support