Qt5 (C++) преобразование из строки GMT/UTC в метку времени UNIX
Я пытаюсь преобразовать из строки GMT/UTC следующим образом:
11 Sep 2014 14:31:50 GMT
метка времени UNIX в Qt (C++).
Вот код (обратите внимание, что я удалил " GMT" из первой строки):
QString l_time = "11 Sep 2014 14:31:50";
QDateTime l_dt = QDateTime::fromString(p_gmt_date, "dd MMM yyyy hh:mm:ss");
uint l_timestamp = l_dt.toTimeSpec(Qt::UTC).toTime_t();
Это дает мне результат:
l_timestamp = 1410438710
Конечно, это неправильно, и я думаю, что это связано с "локальными" настройками (если учесть, что я в Италии).
Проверяя на этом сайте, я получаю правильный результат:
1410445910
На том же сайте я могу проверить, что первый результат неверен, так как он возвращает:
Thu, 11 Sep 2014 12:31:50 GMT
Кто-нибудь может мне помочь? Благодарю.
1 ответ
Исправлена!
QString l_time = "11 Sep 2014 14:31:50";
QDateTime l_dt = QLocale(QLocale::Italian, QLocale::Italy).toDateTime(l_time, "dd MMM yyyy hh:mm:ss");
l_dt.setTimeSpec(Qt::UTC);
uint l_timestamp = l_dt.toTime_t();
Это дает мне правильный результат:
1410445910