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()< 打印成功