Boost::locale::as日期格式标志无效

Boost::locale::as日期格式标志无效,boost,format,locale,flags,Boost,Format,Locale,Flags,下面是代码片段 std::wstring aResult; boost::locale::generator gen; std::locale::global(gen("")); std::wostringstream output; output.imbue(std::locale()); boost::locale::date_time aTime(x); output << boost::locale::as::date_short << aTime; a

下面是代码片段

std::wstring aResult;

boost::locale::generator gen;
std::locale::global(gen(""));

std::wostringstream output;
output.imbue(std::locale());

boost::locale::date_time aTime(x);

output << boost::locale::as::date_short << aTime;

aResult = output.str();
std::wstring是结果;
boost::locale::gen生成器;
std::locale::global(gen(“”);
std::wostringstream输出;
imbue(std::locale());
boost::locale::date\u time(x);

输出它可能表示您的系统没有/不完整的区域设置定义

例如,该计划:

#include <boost/locale.hpp>
#include <string>

int main()
{
    std::wstring aResult;

    boost::locale::generator gen;
    std::locale::global(gen("C"));

    std::wcout.imbue(std::locale());

    boost::locale::date_time aTime;

    std::wcout << std::endl << boost::locale::as::date_full   << aTime;
    std::wcout << std::endl << boost::locale::as::date_short  << aTime;
    std::wcout << std::endl << boost::locale::as::date_medium << aTime;
}
但是(在Debian上运行)相同的代码打印:

Thu Jun  5 13:07:04 2014
Thu Jun  5 13:07:04 2014
Thu Jun  5 13:07:04 2014

这解释了很多!谢谢据报道,Mac OS上的区域设置存在一些bug。因此,我们将为这些员工使用碳库。
Thu Jun  5 13:07:04 2014
Thu Jun  5 13:07:04 2014
Thu Jun  5 13:07:04 2014