Qt 关于 QDateTime与QString 转换问题

QDateTime转换到QString 使用  

QDateTime QDateTime::​fromString(const QString & string, Qt::DateFormat format = Qt::TextDate)

QString DateTime=“ 2019-08-26 10:15:01”‘

qDebug()<< QDateTime::fromString ( DateTime ,"yyyy-MM-dd hh:mm:ss");

打印正常  

但是输入时间不对其0  就会显示错误

QString DateTime=“ 2019-08-26 10:15:1”‘

qDebug()<< QDateTime::fromString ( DateTime ,"yyyy-MM-dd hh:mm:ss");

打印错误  

 

解决办法:使用最直接的办法补齐字符 来解决 ,如果还有其他办法 欢迎补充 谢谢。上代码

QString  MainWindow::getDateTime(QString dateTime){
    int c=dateTime.count(" ");    

      if(c!=1)
        return " ";
    QString data,time;
    data=dateTime.section(' ', 0, 0);

    time=dateTime.section(' ', 1, 1);

    if(data.count("-")!=2 && time.count(":")!=2 )
        return " ";
    QString day,month;
    day=data.section('-', 1, 1);
    month=data.section('-', 2, 2);
    QString h,m,s;
    h=time.section(':', 0, 0);
    m=time.section(':', 1, 1);
    s=time.section(':', 2, 2);
    return data.section('-', 0, 0)+"-"+day.rightJustified(2,'0')+"-"+month.rightJustified(2,'0')+" "
            +h.rightJustified(2,'0')+":"+m.rightJustified(2,'0')+":"+s.rightJustified(2,'0');
}

代码意思是  分别把年,月,日,时,分,秒获取,然后不足2位补齐0,然后就可以正常转换了

QString DateTime=“ 2019-08-26 10:15:1”‘

qDebug()<

打印成功  

 

 

你可能感兴趣的:(Qt)