2010-06-28 23 views
14

¿cómo puedo obtener la hora actual con la biblioteca de impulso. Puedo hacer esto:Hora local con milisegundos

ptime now = boost::posix_timesecond_clock::local_time(); 
tm d_tm = to_tm(now); 

Pero la última unidad de tiempo de estructura tm es segundo y que necesito en milisegundos. ¿Puedo obtener la hora actual con milisegundos?

+0

¿Lo necesita con una precisión de 1 milisegundo? Porque muchas computadoras simplemente no tienen un reloj tan preciso. NTP solo te consigue ~ 10 ms. – MSalters

+1

Además, no espere que esto funcione como usted piensa en Windows. El programador de Windows solo se ejecuta cada 15 ms, por lo que si lo revisas muy a menudo, parecerá que el tiempo se congela durante 15 ms y luego salta hacia adelante. – teeks99

Respuesta

18

vistazo a boost::posix_time::microsec_clock::local_time()

#include <boost/date_time/posix_time/posix_time_types.hpp> 

#include <iostream> 

int 
main() 
{ 
    boost::posix_time::ptime time = boost::posix_time::microsec_clock::local_time(); 
    boost::posix_time::time_duration duration(time.time_of_day()); 
    std::cout << duration.total_milliseconds() << std::endl; 

    return 0; 
} 
+0

Hm, está bien. ¿Y cuál es la forma correcta de acceder a los datos? – Ockonal

+0

@Ockonal He actualizado mi ejemplo para mostrar cómo extraer los milisegundos. –

+0

Genial, gracias. – Ockonal

0

creo que el código debe ser:

ptime now = boost::posix_time::second_clock::local_time(); 

Creo que olvida la "::" en los códigos.^_^

Cuestiones relacionadas