Estoy trabajando con .NET pero necesito comunicarme con un servicio de registro, basado en Unix, que espera segundos y microsegundos desde el tiempo de época de Unix. Los segundos es fácilmente recuperable haciendo algo como:¿Hay un equivalente de "gettimeofday" en .NET
DateTime UnixEpoch = new DateTime(1970, 1, 1);
TimeSpan time = DateTime.UtcNow() - UnixEpoch
int seconds = (int) time.TotalSeconds
Sin embargo, estoy seguro de cómo calcular los microsegundos. Podría usar la propiedad TotalMilliseconds y convertirla a microsegundos, pero creo que eso frustra el propósito de usar microsegundos como medida precisa. He investigado el uso de la clase StopWatch, pero no parece que pueda sembrar con un tiempo (Unix Epoch, por ejemplo).
Gracias.
Esta iba a ser mi respuesta, pero no sabía la resolución de un tic. Hacer esto. Excepto que, desde 100ns = .1us, ¿no deberías dividir las garrapatas entre 10 para obtener microsegundos? – KeithS
Esta es la mejor respuesta, porque ofrece la mayor precisión disponible de 'UtcNow()', pero creo que la propiedad 'Ticks' realmente no es tan precisa. –
@Keith: Whoops, yes, fixing :) –