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.

È stato utile?

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ì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top