2013-09-11 3 views
4

Я ищу datetime из qt, чтобы вернуть мне строку как isodate, но с часовым поясом. я иногда смотрел на веб-за моей проблемы, но не нашли никакого решенияQDateTime Isodate с часовым поясом?

Я только что получил это:

this->ui.dateEnd->dateTime().toString(Qt::ISODate); 

дает мне это:

1900-10-31T23:00:00Z 

или же это:

this->ui.dateEnd->dateTime().toUfc().toString(Qt::ISODate); 

давая мне следующее:

1900-10-31T23:00:00Z 

и я хочу это:

1900-10-31T23:00:00+01.00.00 

Спасибо, если кто-то есть идея!

+0

'dateTime.toTimeSpec (Qt :: OffsetFromUTC) .ToString (Qt :: ISODate)' должен работать (согласно документам), но кажется, что [есть ошибка] (https://bugreports.qt-project.org/browse/QTBUG-26161). –

ответ

5

Got вокруг ошибки, которые я упомянул в комментариях:

QDateTime local = QDateTime::currentDateTime(); 
QDateTime utc = local.toUTC(); 
utc.setTimeSpec(Qt::LocalTime); 

int utcOffset = utc.secsTo(local); 

qDebug() << local.toString(Qt::ISODate); 
qDebug() << utc.toString(Qt::ISODate); 
qDebug() << utcOffset; 

local.setUtcOffset(utcOffset); 
qDebug() << local.toString(Qt::ISODate); 

Воспроизводит:

"2013-09-12T00:17:39" 
"2013-09-11T21:17:39" 
10800 
"2013-09-12T00:17:39+03:00" 
Смежные вопросы