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
Другие вопросы по тегам