2012-02-24 9 views
0

Boost日付時間ライブラリに、boost :: gregorian :: greg_monthタイプに月の短い文字列(Jan、Feb、Mar、Aprなど)を変換するユーティリティ関数はありますか?ライブラリのドキュメントは素晴らしいとは限りませんし、ヘッダーには何も表示されません。文字列をboost :: gregorian :: greg_monthに変換します。

答えて

1

ハック仕事は可能性として%bを持っているように見える短い月の名前を使用しますgreg_monthインスタンスを作成します。ただ、グレアムの発見あたり

...その周りに小さなラッパーを作成する必要があり、これはすでにboost::date_time::month_str_to_ushort<>

+0

ジャスト機能は、すでにこれをWRAPPINたラップ便利な機能があります:後押し:: DATE_TIME :: month_str_to_ushortを 。助けてくれてありがとう! – Graeme

+0

@Graeme、aha - それはどこかにあるはずでした - それはかなり簡単な機能です:) – Nim

0

はい、ロケールを作成してストリームに配置するために使用できるブースト日付時間ファセットがあります。

大量の日付と時刻を印刷または解析する場合は、解析するファセットとロケールを作成しないでください。

日付を入力する際に​​は、hereを参照してください。

#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'; 
    } 
    } 
} 

このマップは、すべての短い/長い名前と短い必要との間のマッピングが含まれています。その例のいくつかは、周りのformat specifier

関連する問題