1

次のように GMT/UTC 文字列から変換しようとしています。

11 Sep 2014 14:31:50 GMT

Qt (c++) の UNIX タイムスタンプへ。

コードは次のとおりです(最初の文字列から「GMT」を削除したことに注意してください):

QString l_time = "11 Sep 2014 14:31:50";
QDateTime l_dt = QDateTime::fromString(p_gmt_date, "dd MMM yyyy hh:mm:ss");
uint l_timestamp = l_dt.toTimeSpec(Qt::UTC).toTime_t();

これにより、結果が得られます。

l_timestamp = 1410438710

もちろんこれは間違っており、「ローカル」設定が原因だと思います (私がイタリアにいると考えてください)。

この Web サイトで確認すると、正しい結果が得られます。

1410445910

同じ Web サイトで、次の結果が返されるため、最初の結果が間違っていることをクロスチェックできます。

Thu, 11 Sep 2014 12:31:50 GMT

誰でも私を助けることができますか?ありがとう。

4

1 に答える 1

0

修理済み!

QString l_time = "11 Sep 2014 14:31:50";
QDateTime l_dt = QLocale(QLocale::Italian, QLocale::Italy).toDateTime(l_time, "dd MMM yyyy hh:mm:ss");
l_dt.setTimeSpec(Qt::UTC);
uint l_timestamp = l_dt.toTime_t();

これにより、正しい結果が得られます。

1410445910
于 2014-09-11T15:26:01.013 に答える