qt — преобразование 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
0

Другие решения


По вопросам рекламы [email protected]