2012-01-19 14 views
3

sqliteデータベースからdatetimeを読み取るコードがあり、datetimeが文字列として返されます。 QDateTime :: FromStringを使って日付に変換しようとすると、無効な日付が返されます。以下は、データベースおよび変換から返された時刻です。 これはなぜ解析できませんか?QDateTime :: fromStringは無効な日付を返します。何が欠けていますか?

// -this is the value returned from the DB currentServerTime=2012-01-17 19:20:27.0 

QString format("yyyy/MM/dd hh:mm:ss"); 
QString qCurrentServerTime(currentServerTime); 
now = QDateTime::fromString(qCurrentServerTime, format); 

答えて

10

QTんの専門家ではなく、一つとしてQDateTime::fromString()作品は(合理的)期待とthisによると、あなたは正しいパターンを使用していない場合。

sqlliteデータベースから読み取った文字列が "2012-01-17 19:20:27.0"のような場合は、フォーマットはyyyy-MM-dd HH:mm:ss.zである必要があります。具体的には

  • あなたのセパレータで必要があります - 時間は24時間形式であるように思わ
  • (あなたが例に示したように)ない '/'(19 '' - >午後7時)(hhの代わりにHHを使用してください)
  • ミリ秒単位で1桁の数字があるので、.zを追加してください。
+0

申し訳ありませんが、間違った時間を貼り付けました。投稿した内容と一致するように書式を変更しました。私の実際の日時に戻って私はこれを働かせることはできません。 – user1127081

+0

@ user1127081実際の文字列は、あなたの書式で提案するように書式設定されていますか?良い。それでは今は何ができませんか? –

+0

ありがとう、間違った日時(正しい2012/01/17 12:00:00 AM)を投稿しましたが、私のミスに私を導いてくれました(私たちのテーブルにはサーバーd/t形式があることもわかります)。以下は正しいフォーマットです。 "MM/dd/yyyy hh:mm:ss AP"ありがとうございました – user1127081

関連する問題