は、この形式の日付に1日を追加する最も簡単な方法は何か++:ブースト日が1日追加、Cでは非標準GMT列
「20090629から05:57:43」おそらく使用して
ブースト1.36 - Boost::date
、Boost::posix_date
または任意の他のブーストまたはstd
ライブラリ機能、私は他のライブラリに興味がありません。
は、これまでのところ私が思いついた:boost::gregorian::date
を初期化することができるように
形式の文字列(文字列のOPとしてスプリット日付と時刻の部分)を、日付は次のようなフォーマットを期待:
「2009- 6月29日午前5時57分43" 秒
は私が持っている
"20090629から05:57:43"
追加1日(ブースト
date_duration
もの)- が戻っ
to_simple_string
を変換し、時刻部分(文字列操作)を追加
これを行うには、任意のより簡単/ niftier方法はありますか?
実行効率を見ています。上記の手順について
例コード:
using namespace boost::gregorian;
string orig("20090629-05:57:43");
string dday(orig.substr(0,8));
string dtime(orig.substr(8));
date d(from_undelimited_string(dday));
date_duration dd(1);
d += dd;
string result(to_iso_string(d) + dtime);
結果:私が知っている最も簡単な方法にかなり近いです
20090630-05:57:43
+1、面白い解決策、私は一見を持っています。ファセットをフォーマットに再利用して、それを介して日付を渡すことができると私は仮定します。 – stefanB
できなかった理由はありません。 追加ポイント:これは現地時間を使用しているため、夏時間の変更に問題が生じることがあります。タイムゾーンをGMTに設定することで簡単に回避できますが、考慮する必要があります。私の特定のケースでは –
私はGMT時間を扱っています – stefanB