3

「dd-mmm-yyyy」からの日付のベクトル文字列があるため、たとえば今日の日付は次のようになります。

  std::string today("07-Sep-2010"); 

ブーストで日付クラスを使用したいのですが、日付オブジェクトを作成するには、日付のコンストラクターを次のように呼び出す必要があります。

 date test(2010,Sep,07);

「dd-mmm-yyyy」の形式で日付を渡す簡単でエレガントな方法はありますか? 私の最初の考えは、substrを使用してからキャストすることでしたか? しかし、「日付ファセット」を使用する可能性もあると読みましたか?

ありがとう!

4

2 に答える 2

3
include "boost/date_time/gregorian/parsers.hpp"
date test = boost::gregorian::from_us_string("07-Sep-2010")
于 2010-09-07T13:03:57.230 に答える
2

Boost自体には、この形式の日付用の組み込みパーサーがあります。こちらのドキュメントをご覧ください。

http://www.boost.org/doc/libs/1_44_0/doc/html/date_time/date_time_io.html#date_time.io_objects

date_type parse_date(...) パラメーター: string_type 入力 string_type フォーマット special_values_parser 指定された形式を使用して、指定された入力から日付を解析します。

string inp("2005-Apr-15");
string format("%Y-%b-%d");
date d;
d = parser.parse_date(inp, 
                      format,
                      svp);
// d == 2005-Apr-15

ニーズに合わせてinp調整します。

于 2010-09-07T13:00:15.133 に答える