Модуль posix_time
boost поддерживает прямое преобразование из этой формы (что, если меня не смущает формат времени ISO?). Взгляните на:
boost::posix_time::from_iso_string
Вам просто нужно сначала убрать метки форматирования.
posix_time::time_from_string
может работать и для вас.
Вы должны быть в состоянии преобразовать posix_time в григорианский.
Надеюсь, это поможет.