1

この形式で日付を読み書きしようとしています: yyyy-mm-ddThh:mm:ssZ

私はこれをやっています:

boost::posix_time::ptime t = boost::posix_time::time_from_string( "2012-02-20T00:26:39Z" );
std::cout << boost::posix_time::to_iso_extended_string( t ) << std::endl;

最後の Z を削除すると機能しますが、そのままにしておくと例外がスローされます (悪い字句キャスト: ソース型の値をターゲットとして解釈できませんでした)。

Z を手動で削除/追加せずに、これらの日付を処理するより良い方法はありますか? あちこちで読んだことから、Z は GMT を意味し、存在しない場合は時刻がローカル タイム ゾーンであることを意味することを理解しています。一般的でバグのないバージョンを読んでもらいたいです。

4

1 に答える 1

1

Boost.DateTime IO チュートリアルの文字列の書式設定に関するセクションを確認してください。

http://www.boost.org/doc/libs/1_48_0/doc/html/date_time/date_time_io.html#format_strings

そこに答えがあると思います。

于 2012-02-20T02:59:55.153 に答える