2010-03-22 14 views
12

Non ho trovato questo nella documentazione: come ottenere l'ora locale (formattata meglio) con boost?ottenere ora locale con boost

+2

formattato meglio di cosa? – jalf

+0

Voglio dire che voglio formattare i dati di output. – Ockonal

risposta

17

Utilizzare posix_time per creare un oggetto orario dall'orologio di sistema.

Ad esempio, questo sarebbe uscita il tempo di sistema corrente come una stringa ISO-formato:

namespace pt = boost::posix_time; 
pt::to_iso_string(pt::second_clock::local_time()); 

Per formattare alternative, vedere la sezione “Conversione in stringa” del riferimento sopra-linked e il riferimento Date Time Input/Output . In alternativa, è possibile creare la propria stringa di output utilizzando le funzioni di accesso. Ad esempio, per ottenere una data in stile USA:

namespace pt = boost::posix_time; 
pt::ptime now = pt::second_clock::local_time(); 
std::stringstream ss; 
ss << static_cast<int>(now.date().month()) << "/" << now.date().day() 
    << "/" << now.date().year(); 
std::cout << ss.str() << std::endl; 

Nota del mese è gettato a int quindi verrà visualizzato come cifre. Il facet di output predefinito verrà visualizzato come abbreviazione del mese di tre lettere ("Mar" per marzo).

+1

Nota: l'inclusione richiesta per questo è: '' boost/date_time/posix_time/posix_time.hpp'' (mi sono imbattuto in questo prima) –

0

non so se questo sarà di alcun aiuto, ma docs spinta avere qualche examples date di formattazione.

Inoltre, penso che this article descriva alcune nozioni di base, che vale la pena guardare.