ASP.net c # Parse int como datetime

Dada una hora:

1286294501433

¿Qué representa los milisegundos transcurridos desde 1970? ¿Cómo convertimos esto a un tipo de datos DateTime? P.EJ:

transactionTime = "1286294501433"; UInt64 intTransTime = UInt64.Parse(transactionTime); DateTime transactionActualDate = DateTime.Parse(intTransTime.ToString()); 

Tiros

La cadena no se reconoció como un DateTime válido.

Tenga en cuenta que se garantiza que todos los tiempos pasados ​​a esta función serán posteriores a 1970.

 var dt = new DateTime(1970, 1, 1).AddMilliseconds(1286294501433); 

Es posible que también deba especificar DateTimeKind explícitamente, según sus requisitos exactos:

 var dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc) .AddMilliseconds(1286294501433); 

Y para simplificarlo aún más y también tener en cuenta su zona horaria local:

Solo crea esta extensión de número entero –

  public static class currency_helpers { public static DateTime UNIXTimeToDateTime(this int unix_time) { return new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(unix_time).ToLocalTime(); } } 

Y luego llámalo donde sea así:

 var unix_time = 1336489253; var date_time = unix_time.UNIXTimeToDateTime(); 

El valor de date_time es:

 5/8/2012 10:00:53 AM 

(a través de: http://www.codeproject.com/Articles/10081/UNIX-timestamp-to-System-DateTime?msg=2494329#xx2494329xx )

Asumiendo que esto es tiempo de Unix es la cantidad de segundos, entonces

 int unixtimestamp=int.Parse(str); new DateTime(1970,1,1,0,0,0).AddSeconds(unixtimestamp); 

como dijo este tipo fetcher .

wiki dice

El tiempo Unix, o tiempo POSIX, es un sistema para describir puntos en el tiempo, definido como el número de segundos transcurridos desde la medianoche del Tiempo Universal Coordinado (UTC) del 1 de enero de 1970, sin contar los segundos de salto. yo