¿Cuál es la equivalencia de Java System.currentTimeMillis()
en C?Obtenga la hora actual, en milisegundos, en C?
Respuesta
Ver este tema: http://cboard.cprogramming.com/c-programming/51247-current-system-time-milliseconds.html
Se dice que la función time() tiene una precisión de segundos, y la precisión más profundo requiere de otras bibliotecas ...
Comprobar time.h
, tal vez algo así como la función gettimeofday()
.
Usted puede hacer algo como
struct timeval now;
gettimeofday(&now, NULL);
A continuación, puede extraer tiempo al obtener los valores de now.tv_sec
y now.tv_usec
.
no
Existe la función time(), pero devuelve segundos, no milisegundos. Si necesita una mayor precisión, puede usar funciones específicas de la plataforma como Windows 'GetSystemTimeAsFileTime() o * nix's gettimeofday().
Si en realidad no se preocupan por la fecha y la hora, pero sólo desea cronometrar el intervalo entre dos eventos, así:
long time1 = System.currentTimeMillis();
// ... do something that takes a while ...
long time2 = System.currentTimeMillis();
long elapsedMS = time2 - time1;
entonces el equivalente de C es clock(). En Windows, es más común usar GetTickCount() para este propósito.
En Linux y otros sistemas tipo Unix, debe usar clock_gettime(CLOCK_MONOTONIC). Si esto no está disponible (por ejemplo, Linux 2.4), puede recurrir al gettimeofday(). Este último tiene el inconveniente de verse afectado por los ajustes del reloj.
En Windows, puede usar QueryPerformanceCounter().
This code resumen de todo lo anterior en una interfaz simple que devuelve el número de milisegundos como int64_t. Tenga en cuenta que los valores en milisegundos devueltos solo están destinados al uso relativo (por ejemplo, tiempos de espera) y no son relativos a ningún tiempo en particular.
'CLOCK_MONOTONIC' no es completamente equivalente a la función java, ya que la función java también se ve afectada por los ajustes del reloj de pared. Es la elección correcta para los temporizadores de intervalo, por supuesto, pero si el OP quiere un tiempo de reloj de pared no va a ayudar. – bdonlan
- 1. Cómo obtener la hora actual en milisegundos programación en C
- 2. obtiene la hora actual en milisegundos usando C++ y Boost
- 3. calendario Java obtenga la fecha actual, sin horas, minutos, segundos y milisegundos, en milisegundos
- 4. C++ MFC Obtenga la fecha y hora actual
- 5. Obtenga tiempo en milisegundos usando C#
- 6. ¿Cómo obtener la hora actual en milisegundos desde C en Linux?
- 7. Hora local con milisegundos
- 8. Obtener la hora actual en C
- 9. ¿Cómo obtener la hora actual (en milisegundos) desde el reloj del sistema en Windows?
- 10. Obtenga ahorros reales de DST en milisegundos
- 11. ¿Hay alguna forma en XQuery de obtener la hora actual en milisegundos desde algún tiempo?
- 12. Obtenga el idioma actual en C#
- 13. C# - Formateo de la hora actual
- 14. manipular la hora actual en pruebas unitarias?
- 15. Obtenga la hora actual, incluidos los segundos de Sys.Date() en R
- 16. Obtenga la fecha (un día antes de la hora actual) en Bash
- 17. C#: ¿Cómo obtendré la hora actual en una cadena?
- 18. Obteniendo la hora actual en C usando time.h
- 19. ¿cómo puedo obtener la hora actual en C#?
- 20. Obtenga la celda actual en Excel VB
- 21. Obtenga el nombre de usuario actual en C++ en Windows
- 22. Obtenga la hora estándar de Sudáfrica en Php
- 23. obtiene la hora actual
- 24. obtener la hora actual en segundos
- 25. Obtener la fecha/hora actual en segundos
- 26. ASP.NET: Obtenga milisegundos desde 1/1/1970
- 27. Convertir la fecha UTC en milisegundos
- 28. UILabel con la hora actual
- 29. Cómo obtener la hora actual
- 30. Obtenga tiempo en milisegundos sin instalar un paquete adicional?
¿Qué sistema operativo? –
Ver http://stackoverflow.com/questions/5303751/current-microsecond-time-in-c. Buenas respuestas allí. – netcoder
Posible duplicado de [¿Cómo medir el tiempo en milisegundos utilizando ANSI C?] (Http://stackoverflow.com/questions/361363/how-to-measure-time-in-milliseconds-using-ansi-c) –