Se stai usando Boost.Date_Time, questo è fatto usando le facce IO.
è necessario includere boost/date_time/posix_time/posix_time_io.hpp
per ottenere i typedef sfaccettatura corrette (wtime_facet
, time_facet
, etc.) per boost::posix_time::ptime
. Una volta fatto, il codice è piuttosto semplice. Si chiama infondere sulla ostream
si desidera output, quindi solo l'output del ptime
:
#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/posix_time/posix_time_io.hpp>
using namespace boost::posix_time;
using namespace std;
int main(int argc, char **argv) {
time_facet *facet = new time_facet("%d-%b-%Y %H:%M:%S");
cout.imbue(locale(cout.getloc(), facet));
cout << second_clock::local_time() << endl;
}
uscita:
14-Dec-2009 16:13:14
Vedi anche il list of format flags nella documentazione Boost, nel caso in cui si desidera trasmettere qualcosa amatore.
E http://www.boost.org/doc/libs/1_35_0/doc/html/date_time/date_time_io.html#date_time.format_flags per i flag di formato. –
Ho lavorato per me, grazie! – Alfredo
Il cout diventa proprietario e cancella il puntatore facet? – Arthur