2011-09-16 46 views
0

我想一個QDateTime轉換格式轉換問題,從一個QDateTime格式到另一種

Sat Feb 12 00:00:00 2011 

d/m/yyyy h:mm:ss AP 

即 「12/02/2011 12:0:0 AM」。

這怎麼辦?

+0

我嘗試:'QString的strDateTime.append(tempDateTime.toString( 「dd/mm/yyyy h:mm:ss AP」)); '但結果就像:'「12/00/2011 12:00:00 AM」'。可能是什麼問題呢... – RajeevSahu

回答

2

可能使用的功能

  • QDateTime :: fromString
  • QDateTime ::的toString

但嘗試使用ISO based timeformat如果可以的話,這種奇怪的格式化與兩個工作日和如果月份信息不是有效日期,它可能會變得很有趣。

正常的例子可能看起來像(使用ISO格式):

QDateTime myTime; 
qDebug() << myTime.fromString("2010-01-01 17:00", "yyyy'-'MM'-'dd' 'hh':'mm").toString("yyyy-MM-dd hh:mm:ss"); 

我試圖用你的輸入格式在fromString,但結果是有點怪。所以,也許你需要使用一些經典的字符串操作來創建一個有效的日期字符串和一些正則表達式,然後才能開始處理日期。

/祝你好運

0

修復你的格式化字符串。您在月份中使用「mm」,但「mm」表示前導零的分鐘數。月份使用「MM」。另外,如果你真的想提出分和秒,沒有前導零在你的問題,只使用單一的「M」和「S」:

QString str = tempDateTime.toString("dd/MM/yyyy h:m:s AP")); 
相關問題