Leggere e scrivere date con spinta
-
28-10-2019 - |
Domanda
Sto cercando di leggere/scrivere le date in questo formato: YYYY-MM-DDTHH: MM: SSZ
Sto facendo questo:
boost::posix_time::ptime t = boost::posix_time::time_from_string( "2012-02-20T00:26:39Z" );
std::cout << boost::posix_time::to_iso_extended_string( t ) << std::endl;
Funziona se rimuovo la Z finale, ma se lo mantengo viene lanciata un'eccezione (cattiva cast lessicale: il valore del tipo di sorgente non può essere interpretato come target).
Esiste un modo migliore per gestire quelle date, senza rimuovere manualmente/aggiungere la Z? Da quello che ho letto qua e là, capisco la Z significa GMT e se non è presente significa che il tempo è nel fuso orario locale. Vorrei che una versione generica e bugfree lo legga.
Soluzione
Dai un'occhiata alla sezione sulla formattazione di stringhe nel tutorial Boost.DateTime IO.
http://www.boost.org/doc/libs/1_48_0/doc/html/date_time/date_time_io.html#format_strings
Mi assottigliarai che troverai le tue risposte lì.