Boost 日時ライブラリに、月の短い文字列 (Jan、Feb、Mar、Apr など) を boost::gregorian::greg_month 型に変換するためのユーティリティ関数はありますか? ライブラリのドキュメントは良くなく、ヘッダーに何も表示されません。
2 に答える
1
ハッキーな回避策は次のとおりです。
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>
int main(void)
{
auto ptr = boost::gregorian::greg_month::get_month_map_ptr();
if (ptr)
{
auto it = ptr->begin();
for(; it != ptr->end(); ++it)
{
std::cout << it->first << " " << it->second << '\n';
}
}
}
greg_month
このマップには、インスタンスの作成に必要なすべての短い/長い名前と短い名前の間のマッピングが含まれています。その周りに小さなラッパーを作成するだけです...
Graeme の発見によると、既にこれをラップする便利な関数があります。boost::date_time::month_str_to_ushort<>
于 2012-02-24T14:08:13.320 に答える
0
はい、ロケールを作成してストリームに入れるために使用できるブースト日時ファセットがあります。
ただし、多数の日付と時刻を出力または解析する場合は、解析するそれぞれのファセットとロケールを作成しないことに注意してください。
日付の入力に関するドキュメントについては、こちらを参照してください。彼らの例のいくつかは、フォーマット指定子%b
として持っているように見える短い月名を使用しています
于 2012-02-24T14:00:02.233 に答える