今天在工作的时候,遇到了几种QDateTime::fromString无法转译的问题,再此记录一下。
需求背景是读取CSV文件中的数据,数据包括了时间。但是时间格式不是标准的时间格式。
有yyyy/M/d 和 yyyy/M/d h:m两种格式。 我在进行转译的时候,发现有下面几种情况无法转译:
1. h为0
2.h为1
3.h为2
4.M为1
5.d为1
6.d为2
7.d为3
不能转译的原因还没弄清楚。后续有结论再补充。
解决办法:
void CheckTimeFormat( QString &str )
{
if ( str.contains(" 0:") )
{
str = str.replace(" 0:", " 00:");
}
if ( str.contains(" 1:") )
{
str = str.replace(" 1:", " 01:");
}
if ( str.contains(" 2:") )
{
str = str.replace(" 2:", " 02:");
}
if ( str.contains("/1/") )
{
str = str.replace("/1/", "/01/");
}
if ( str.contains("/1/") )
{
str = str.replace("/1/", "/01/");
}
if ( str.endsWith("/1") )
{
str = str.left(str.size()-1);
str.append("01");
}
if ( str.endsWith("/2") )
{
str = str.left(str.size()-1);
str.append("02");
}
if ( str.endsWith("/3") )
{
str = str.left(str.size()-1);
str.append("03");
}
}