----- Original Message -----
From: "Jeff Garland"
Ok, easy as pie. We'll set the time_duration_format format, stream it in and convert to utc:
try { //setup your input facet time_input_facet *facet = new time_input_facet(); facet->set_iso_format(); facet->time_duration_format("%H%M"); // just get a tz parts some_stream_instance.imbue(std::locale(std::locale::classic(), facet));
//stream the parts in ptime t; time_duration td(0,0,0);
//get the time part t >> some_stream_instance; //now get the utc offset td >> some_stream_instance; t += td; //convert time to UTC } catch(std::exception& e)
I didn't compile or run this...you'll what some error handling...but I'm 99% sure it will do what you want :-)
I actually thought about this but encountered a problem with the sign part (for example, +05:00). According to the documentation, "%+" and "%-" only work for output. I just tried again and got an exception (with 1.33). Maybe I am missing something here... In any rate, it is easy to parse the offset part ourselves. Again, thank you very much for your help! Sean By the way, shouldn't it be t-=td?