2012-02-01 13 views
40

Tengo un pequeño problema causado por documentación insuficiente de C++ 11.Tiempo de C++ chrono system en milisegundos, operaciones de tiempo

Me gustaría obtener un tiempo desde epoch en milisegundos, o nanosegundos o segundos y luego tendré que "lanzar" este valor a otra resolución. Puedo hacerlo usando gettimeofday() pero será fácil, así que traté de lograrlo usando std :: chrono.

Traté:

std::chrono::time_point<std::chrono::system_clock> now = 
    std::chrono::system_clock::now(); 

Pero no tengo ni idea de lo que es una resolución de obtenido de esta manera time_point, y yo no sé cómo conseguir esta vez como un simple unsigned long long, y yo no tengo ninguna idea de cómo convertirlo en otra resolución.

+0

posible duplicado de [std :: crono y cout] (http://stackoverflow.com/questions/7889136/stdchrono-and-cout) –

Respuesta

77

Puede hacer now.time_since_epoch() para obtener una duración que represente el tiempo transcurrido desde la época, con the clock's resolution. Para convertir a milisegundos utilizan duration_cast:

auto duration = now.time_since_epoch(); 
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); 
+11

1. Más información aquí (es casi un tutorial): http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm –

+0

@Howard gracias! Ahora tengo un lugar para señalar a las personas cuando me digan que no incluyen "". –

+0

@ R.MartinhoFernandes También tengo una pregunta básica relacionada con la biblioteca del crono [aquí] (http://stackoverflow.com/questions/31575061/how-to-convert-stdchronotime-point-to-uint64-t). ¿Ves si puedes ayudarme? Cualquier ayuda será apreciada. – user1950349

Cuestiones relacionadas