Qt中关于获取程序编译时间的问题

Qt中关于获取程序编译时间的问题

问题描述:

在使用下面函数获取程序编译时间,进行版本记录时,之前一直运行好好的程序突然不能正常显示编译时间了,开始代码如下,


//错误代码
//现在原因已查明:当日期只有一位时,系统的编译时间会用空格进行填充,如“5”会被填充为“ 5”,多了一个空格
//当日期为两位时,则正常输出为日期。就导致一个问题:当天数为一位数时,读取编译时间需要加一个空格,两位数时候就不加空格
QDateTime MM::buildDateTime()
{
    QString dateTime;
    dateTime += __DATE__;
    dateTime += __TIME__;
    return QLocale(QLocale::English).toDateTime(dateTime, "MMM dd yyyyhh:mm:ss");
}

原因分析:

后经过分析 ,QLocale(QLocale::English).toDateTime(dateTime, “MMM dd yyyyhh:mm:ss”);这个函数对于传入的字符传和模板是严格对应的,即每一个位置的字符要对应其解释的意义,不然就只能实例化一个空的QTateTime对象。以上代码就是在月和日之间缺少一个空格导致实例化失败。


解决方案:

打印程序中的__DATE__、TIME,将空格,年月等与后面字符串对应,进行程序纠正,修改后代码如下:

QDateTime PISInfo::buildDateTime()
{
    QString dateTime;
    dateTime += __DATE__;
//    qDebug()<<__DATE__;
    dateTime += __TIME__;
//    qDebug()<<__TIME__;
//    Feb  5 2021
//    09:33:35
    qDebug()<<QLocale(QLocale::English).toDateTime(dateTime, "MMM  dd yyyyhh:mm:ss");
    return QLocale(QLocale::English).toDateTime(dateTime, "MMM  dd yyyyhh:mm:ss");
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值