【问题标题】:Converting ISO::DateTime to number format将 ISO::DateTime 转换为数字格式
【发布时间】:2019-02-28 05:27:10
【问题描述】:

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

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

预期结果:201903120858031

【问题讨论】:

    标签: qt c++11 datetime-format


    【解决方案1】:

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

    想象一下验证日期、闰年等后的痛苦

    每个日期和日期时间都有进行日历数学运算的方法。

    将此示例视为参考:

    //
    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 的日期时间,那么您可以将其转换为 long

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

    产生输出:

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

    之后:“20200228124333”

    编号后:20200228124333

    【讨论】:

    • 其实要求是按照我在问题中写的数字格式显示时间。
    • 完美,tnxs 澄清,请参阅我的更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 2020-10-21
    • 2012-10-17
    • 2010-12-27
    相关资源
    最近更新 更多