Преобразование ISO :: DateTime в числовой формат - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу изменить формат даты и времени только на числа, чтобы его можно было увеличивать.

Текущая реализация сохраняется как QString 2019-03-13T09:01:22+01:0

Ожидаемый результат: 201903120858031

1 Ответ

0 голосов
/ 28 февраля 2019

QT - действительно мощная структура, вы просто неправильно кодируете решение.

Представьте боль в спине, просто проверяйте даты, високосные годы и т. Д.

каждую дату иУ dateTime есть методы для выполнения математических операций над календарем.

см. этот пример как ref:

//
QDateTime dateOrigin = QDateTime::currentDateTime();
QDateTime ReturnDate = QDateTime::currentDateTime();
QString isoDate{dateOrigin.toString(Qt::ISODate)};
qDebug() << "before: " << isoDate;
ReturnDate = dateOrigin.addDays(1);
ReturnDate = dateOrigin.addMonths(1);
ReturnDate = dateOrigin.addYears(1);
qDebug() << "after: " << ReturnDate.toString(Qt::ISODate);
//

update: предположим, что 201903120858031 - это время даты, форматированное как ггггММддЧЧммсс , затем вы можете преобразовать это значение в длинное

//201903120858031
//yyyyMMddHHmmss
qDebug() << "after: " << ReturnDate.toString("yyyyMMddHHmmss");
qDebug() << "after as long number: " << ReturnDate.toString("yyyyMMddHHmmss").toLong();

, производя вывод:

до: "2019-02-28T12: 43: 33"

после: "20200228124333"

после как номер: 20200228124333

...