Si los métodos from_string() existentes no se ajustan a sus necesidades, entonces puede usar una faceta de entrada de tiempo que le permite personalizar el formato desde el que se analiza la cadena.
En su caso se puede utilizar el formato de cadena extendida ISO manera puede utilizar el código siguiente para analizar sus cadenas:
boost::posix_time::time_input_facet *tif = new boost::posix_time::time_input_facet;
tif->set_iso_extended_format();
std::istringstream iss("2012-03-28T08:00:00");
iss.imbue(std::locale(std::locale::classic(), tif));
iss >> abs_time;
std::cout << abs_time << std::endl;
Está su cadena siempre en el formato ISO lo solicitado acerca de su pregunta o lo necesita para aceptar cualquier formato de secuencia? – tinman