将ISO :: DateTime转换为数字格式

时间:2019-02-28 05:27:10

标签: qt c++11 datetime-format

我想将日期时间格式仅更改为数字,以便可以递增。

当前实施保存为QString 2019-03-13T09:01:22+01:0

预期结果: 201903120858031

1 个答案:

答案 0 :(得分:1)

qt是一个非常强大的框架,您只是在以错误的方式编码解决方案。

想像一下验证日期,leap年等等时背部的痛苦

每个date和dateTime都有执行日历数学运算的方法。

请参见以下示例作为参考:

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

更新: 假设 201903120858031 是日期时间,格式为 yyyyMMddHHmmss ,那么您可以将其转换为长日期

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

产生输出:

  

之前:“ 2019-02-28T12:43:33”

     

后:“ 20200228124333”

     

后为号码:20200228124333