2014-09-11 14 views
1

Я пытаюсь конвертировать из GMT/UTC строку, как это:Qt5 (C++) преобразование GMT ​​/ UTC строки в UNIX метку времени

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 

Конечно, это не так, и я думаю, это связано с «местными» настройками (я считаю, что я в Италии).

Проверка на this website я получить правильный результат:

1410445910 

В том же сайте я могу перепроверить, что первый результат является неправильным, так как она возвращает:

Thu, 11 Sep 2014 12:31:50 GMT 

Кто-нибудь может мне помочь? Спасибо.

ответ

0

Исправлено!

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 
Смежные вопросы