在Boost日期时间库中,是否有一个实用函数用于将月短字符串(例如Jan,Feb,Mar,Apr)转换为boost :: gregorian :: greg_month类型?该库的文档不是很好,我在标题中看不到任何内容。
答案 0 :(得分: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<>
答案 1 :(得分:0)
是的,有一些提升日期时间方面可用于创建语言环境并放入流中。
请注意,如果要打印或解析大量日期和时间,则不要为每个解析的方法创建构面和区域设置。
查看here以获取有关输入日期的文档。他们的一些示例使用短月份名称,其%b