の解析に失敗しました。 e。それは文字では動作しません。 私は間違っていますか?は、私はこのコードを持っている日付
答えて
tm
の内容を検査する場合は、それはあなたが期待するものでなければなりません。
get_time
%a
は、tm_wday
に解析されます。
しかし、mktime
は、tm_wday
とtm_yday
をまったく使用せず、他のフィールドのみを使用します。実際には、mktime
実際にはは、これらのフィールドをに設定します(tm入力はconst
にできません)。
したがって、実際にはtm_year
、多くのプラフォームではtime_t
が1970年以降に秒数で表示されていますが、1970年以前は無効とみなされます。
MSVCで例えば、time_t
は64ビット符号付き整数であるが、唯一のmktime is documentedがために有効である「23時59分59秒に1970年1月1日、12月31日、3000は」
"Tue、15 Nov 2010 08:12:31 GMT"という日付でチェックしました。しかし、 'tm'の全てのフィールドはゼロです。 –
mktimeの前に 'tm_wday'が3でなければなりません。失敗したときに' mktime'が上書きするかどうかは分かりませんが、確かに成功するでしょう。今週の真夜中に言いたい時間を得るには、適切な 'tm_year'や' tm_mon'のような他の値と組み合わせて、最初の日の 'tm_mday'を見つけ出す必要がありますその後、 'tm_mday + = tm_wday'を調整してください) –
私がチェックしたとき、私は' mktime'を呼び出さなかった。 –
あなたの呼び出しは、おそらく、正常書きますその後mktimeを使用した場合t->tm_wday
に、まだ、time->tm_wday
の値は無視されます。
のstd :: mktime関数
... time-> tm_wdayおよびtime-> tm_ydayは無視されます。値は で、通常の範囲外にすることができます。 ...
はそのため、あなたはtm
に書き込むすべてが無視され、その結果はtime_t
として表現することができず、戻り値は、このように-1
です。 mktime
とは対照的に
、std::put_time
は(February
がFeb
に変わるかもしれないような)それぞれの値を使用しますが、出力のためにそれらを再解釈:
int main()
{
std::tm t = {};
istringstream ss("Thursday February");
ss >> std::get_time(&t, "%a %b");
if (ss.fail()) {
cout << "invalid date value." << endl;
}
else {
std::cout << "Date: " << std::put_time(&t, "%a %b") << endl;
}
return 0;
}
出力:
Date: Thu Feb
私はあなたのサンプルを実行すると、私は取得: '無効な日付の値。それは本当に奇妙です。 –
しかし、ロケールを設定しなければ、それは動作します。 –
- 1. 私は次のコードを持っている特定の日付
- 2. VBA私は、次のコードを持っている日付
- 3. どのように私はこのコードを持っているテーブルと日付
- 4. アンギュラ私は日付のこのソース持っているフォーマット
- 5. タイムゾーンの変換は、私は次のコードを持っている日付値
- 6. MySQLは、私は次の表を持っている日付
- 7. は、私は日付のテーブルを持っているPHP
- 8. は、私は、このMySQLのテーブルを持っている最大の日付
- 9. は、私はこのフォームで日付を持っている月のPHP
- 10. は、私はこのコードを持って
- 11. は、私はこのコードを持って
- 12. 私はこれらの日付の時間を持って
- 13. Strutsは、私はこのコードを持っている私の.class
- 14. は、私はこのコードを持っている私のテキストファイル
- 15. Rubyは私が日付の配列を持っている日付
- 16. 私はこの形式で日付を格納日時フィールドを持っている私のテーブルではSQLiteの
- 17. イベントフィルタは、私は、キーボードを使用して日付ピッカーで日付を変更できるようにするには、このコードを持っていないワンアクション
- 18. Androidの日付ピッカーは私はアンドロイドで日付ピッカーのためにこのコードを持っている日付値
- 19. 私は、データベースの日付を持っているデータベース
- 20. 私はこのコードを持って、コンストラクタ
- 21. 私はこのコードを持って
- 22. は、私はこのC++のコードを持って、このC++コード
- 23. は、私は、次のインデックスを持つパンダのデータフレームを持っている日付
- 24. はCSS-アコーディオンは、私はこのコードを持っている
- 25. 私は私のコードでこの行を持っている
- 26. 私は私のクライアントアプリケーションでこのコードを持っているXML
- 27. は、私は&日、週の日付でテーブルを持っている
- 28. 私はこのコードを持っているこの変数
- 29. 私はこのコードを持っているこの機能
- 30. は持っている日付ピッカー
私はしないでください「水」は有効な日付だと思う。 「水」はそれを使うだろうか? – NathanOliver