3

QDateTimeをファイルに書き込むコードがあります...

someQDateTime.toUTC().toString(Qt::ISODate)

を使用して読み返すとQDateTime::fromString()、システムのタイムゾーンにあると解釈される時間が表示されます。文字列を書き出すときに手動で「Z」を追加したり、文字列setTimeSpec()を読んだ後に使用したりできます。そうすれば、すべて問題ありませんが、これはこれを行うための好ましい方法ですか?timeSpecがUTCの場合、toString()はZを書き出すことを知っているべきではありませんか?

4

2 に答える 2

3

まあ、少なくともISO 8601(セクション4.2.4、ここではpdfZ )によれば、UTCと現地時間を区別するためにaが必要です。それについて知っている間、まるでQDateTime::toString()このアドバイスに従わないようです。QDateTime::fromString()ISO 8601には、セクション4.3.2にもこの注記が含まれています([T]はタイムゾーンインジケーター、つまりZです)。

「情報交換におけるパートナーの相互合意により、この国際規格で定義されている他の日付と時刻の表現を混同するリスクがないアプリケーションでは、文字[T]を省略できます。」

いつでもバグレポート(https://bugreports.qt.io/)を提出して、Qtの人々にこの小さな矛盾について伝え、彼らがそれについて何を言わなければならないかを確認することができます。

于 2010-07-28T06:02:23.197 に答える
0

Qtバグ9698は、の動作に関するものですQDateTime::toString(Qt::ISODate)。タイムゾーン指定子の省略が報告されています。バグに投票してください。

于 2010-11-18T14:00:19.587 に答える