В библиотеке времени времени увеличения есть функция утилиты для преобразования коротких строк месяца (например, Jan, Feb, Mar, Apr) для повышения :: gregorian :: greg_month type? Документация для библиотеки невелика, и я ничего не вижу в заголовках.Преобразование строки в boost :: gregorian :: greg_month
ответ
А Hacky работа вокруг может быть:
#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
. Просто нужно создать небольшую обертку вокруг него ...
за открытие Грэма, есть удобная функция, которая оборачивает это уже boost::date_time::month_str_to_ushort<>
Да, есть моменты времени дат форматирования, которые можно использовать для создания локалей и ввода в потоки.
Остерегайтесь, что если вы собираетесь распечатать или проанализировать большое количество дат и времени, вы не создадите грань и локаль для каждого из них, которые вы разбираете.
Посмотрите here на документацию по дате ввода. Некоторые из их примеров использовать короткие названия месяцев, которые, как представляется, %b
как его format specifier
Просто найти функцию уже wrappin это вверх: повышение :: дата_время :: month_str_to_ushort , Спасибо за помощь! –
Graeme
@Graeme, ага - это должно было быть где-то - это довольно тривиальная функция ... :) – Nim