Я пытаюсь конвертировать из строки 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
Кто-нибудь может мне помочь? Благодарю.
Исправлена!
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();
Это дает мне правильный результат: