あなたのdate
文字列には時間が含まれていません.あなたが欲しいと言いましたが、これは少なくとも Qt 5.4 では失敗します. エポッシュが出力される理由はわかりませんが、Qt のバージョンに依存している可能性があります。
日付形式もロケールに依存します。たとえば、 in のドキュメントを参照して"ddd"
くださいQDateTime::fromString
。
短縮されたローカライズされた曜日名 (例: 'Mon' to 'Sun')。QDate::shortDayName() を使用します。
残念ながら、これはそれほど明確ではありませんが、次の場合はより明確ですQDateTime::toString
。
短縮されたローカライズされた曜日名 (例: 'Mon' to 'Sun')。システム ロケールを使用して名前をローカライズします。つまり、QLocale::system()。
たとえば、私のロケール (ドイツ語、オーストリア) では、木曜日の "ddd" は"Do."
which とは異なり"Thu"
、そのロケールでは英語の略語を解析できません。
ロケール依存の出力を読み書きするときに正しいロケールを使用していることを確認するには、 を使用しますQLocale
。あなたの場合、それは次のようになりますQLocale::toDateTime
:
QLocale locale(QLocale::English, QLocale::UnitedStates);
QDateTime dt = locale.toDateTime("Jun 18 2015", "MMM dd yyyy");
次に、ロケール依存の出力も必要な場合は、 を使用しますQLocale::toString
。