QDateTime Isodate mit Zeitzone ?

QDateTime Isodate mit Zeitzone ?


Ich suche die Datumszeit von qt, um mir den String als Isodate zurückzugeben, aber mit der Zeitzone.
Ich habe manchmal im Internet nach meinem Problem gesucht, aber keine Lösung gefunden


Ich habe gerade das bekommen:


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

gib mir das:


1900-10-31T23:00:00Z

Oder auch das:


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

gib mir das:


1900-10-31T23:00:00Z

und ich will das:


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

Vielen Dank, wenn jemand eine Idee hat!


Antworten:


Habe den Fehler umgangen, den ich in den Kommentaren erwähnt habe:


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);

Dies gibt aus:


"2013-09-12T00:17:39"  
"2013-09-11T21:17:39"
10800
"2013-09-12T00:17:39+03:00"

Einige Code-Antworten


QDateTime startDate(QDate(2012, 7, 6), QTime(8, 30, 0));
QDateTime endDate(QDate(2012, 7, 7), QTime(16, 30, 0));
qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);
startDate = QDateTime(QDate(2012, 7, 6), QTime(23, 55, 0));
endDate = QDateTime(QDate(2012, 7, 7), QTime(0, 5, 0));
qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);
qSwap(startDate, endDate);
// Make endDate before startDate. qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);
QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s");
// dateTime is January 30 in 1900 at 00:00:01. dateTime = QDateTime::fromString("12", "yy");
// dateTime is January 1 in 1912 at 00:00:00.
QTime time1 = QTime::fromString("131", "HHh");
// time1 is 13:00:00 QTime time1 = QTime::fromString("1apA", "1amAM");
// time1 is 01:00:00 QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02",
"'M'M'd'd'y'yyhh:mm:ss");
// dateTime is 1 January 1998 00:01:02
QDateTime dateTime = QDateTime::fromString("130", "Mm");
// invalid
QString string = "Monday, 23 April 12 22:51:41";
QString format = "dddd, d MMMM yy hh:mm:ss";
QDateTime invalid = QDateTime::fromString(string, format);
QString string = "Tuesday, 23 April 12 22:51:41";
QString format = "dddd, d MMMM yy hh:mm:ss";
QDateTime valid = QDateTime::fromString(string, format);
QDateTime now = QDateTime::currentDateTime();
QDateTime xmas(QDate(now.date().year(), 12, 25).startOfDay());
qDebug("There are %d seconds to Christmas", now.secsTo(xmas));
QDateTime dt = QDateTime::currentDateTime();
dt.setTime(QTime());
QDateTime local(QDateTime::currentDateTime());
qDebug() << "Local time is:" << local;
QDateTime UTC(local);
UTC.setTimeSpec(Qt::UTC);
qDebug() << "UTC time is:" << UTC;
qDebug() << "There are" << local.secsTo(UTC) << "seconds difference between the datetimes.";
QDateTime UTC(QDateTime::currentDateTimeUtc());
QDateTime local(UTC.toLocalTime());
qDebug() << "UTC time is:" << UTC;
qDebug() << "Local time is:" << local;
qDebug() << "No difference between times:" << UTC.secsTo(local);
QDateTime local(QDateTime::currentDateTime());
QDateTime UTC(local.toTimeSpec(Qt::UTC));
qDebug() << "Local time is:" << local;
qDebug() << "UTC time is:" << UTC;
qDebug() << "No difference between times:" << local.secsTo(UTC);
QDateTime local(QDateTime::currentDateTime());
QDateTime UTC(local.toUTC());
qDebug() << "Local time is:" << local;
qDebug() << "UTC time is:" << UTC;
qDebug() << "No difference between times:" << local.secsTo(UTC);