Marca de tiempo de Unix a fecha y hora reales<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Extraigo datos de una base de datos y parte de esto es una "hora de inicio" para un proceso. El principal problema con esto es que está en formato UNIX, por lo que devuelve un número de 10 dígitos. Sé que la fórmula para convertir esto a fecha y hora reales es la siguiente
(tomado de Excel)
=CELDA/(60*60*24)+"1/1/1970"
por lo que cambiar una columna en JMP debería ser sencillo, pero parece que no puedo hacerlo. El (60*60*24) es fácil, pero ¿en qué formato tengo que configurar el +"1/1/1970" para que esto funcione?
Adjunto una tabla de datos que contiene algunas fechas de los últimos seis años como ejemplo. Mi sensación es que esto podría haberse preguntado antes, pero no veo nada relacionado con ello.
Saludos
David
Re: Marca de tiempo de Unix a fecha y hora realesHola @Jeff_Perkinson ,
algo como Conversión de zona horaria .
El vídeo en @jthi La publicación muestra órdenes superiores del problema, pero incluso para una conversión "simple" de UTC al horario de verano/invierno alemán, una función JSL podría ahorrar mucho tiempo.
Re: Marca de tiempo de Unix a fecha y hora realesNo hay nada integrado, pero generalmente es solo cuestión de sumar/restar horas (en segundos) de un tiempo.
¿Qué ayuda necesitas?
Re: Marca de tiempo de Unix a fecha y hora reales
@jthi escribió:
... Ojalá no tengas que tocar zonas horarias.
y si es necesario, ¿puede ayudarnos Jmp?
Re: Marca de tiempo de Unix a fecha y hora reales¡Gracias!
Re: Marca de tiempo de Unix a fecha y hora realesCreo que debería ser suficiente si eliminas la hora cero de Unix de la fecha y hora de JMP, ya que ambas están en segundos. Esperemos que no tengas que tocar zonas horarias ( El problema con la hora y las zonas horarias - Computerphile (youtube.com) )
Names Default To Here(1);
unix_zero = Date MDY(1,1,1970);
date_now = Today();
unix_time = date_now - unix_zero;
// In Hours() might be helpful if you need timezone conversion
// just to verify that time is correct I'm using Unix Timestamp converter REST API from https://unixtime.co.za/
aa = Associative Array();
aa["timestamp"] = unix_time;
request = New HTTP Request(
URL("https://showcase.api.linx.twenty57.net/UnixTime/fromunix"),
Method("GET"),
Query String(aa)
);
data = request << send;
Show(As Date(date_now));
show(data);
Re: Marca de tiempo de Unix a fecha y hora realesMi pregunta es todo lo contrario, ¿cómo convierto tiempo real a marcas de tiempo Unix?
Re: Marca de tiempo de Unix a fecha y hora realesSí... sabía que me faltaba algo jajaja. ¡Gracias!
Re: Marca de tiempo de Unix a fecha y hora realesHa hecho clic en "Fecha" para seleccionar el formato a elegir. Seleccione "Hora" y le dará todos los formatos de fecha/hora.Re: Marca de tiempo de Unix a fecha y hora realesHola Bill,
Sé que esta publicación es de hace una eternidad, pero estoy tratando de hacer lo mismo y fallo. Tengo la fórmula y todos esos datos en la nueva columna, pero no puedo encontrar la opción para seleccionar m/d/yh:m:s para la convención de fechas. Sólo me dan las opciones para seleccionar las muchas variantes de m/d/y. ¿Hay algo que me falta para incluir la hora en la salida de fecha? Gracias.


@Bill_Worley escribió:
Otro complemento: hablé con Jeff sin conexión y expresó un muy buen punto.No utilice la cadena de caracteres "MDYHMS" si desea hacer algunos cálculos con sus marcas de tiempo.Utilice Información de columna para formatear sus nuevos tiempos como datos continuos.

Re: Marca de tiempo de Unix a fecha y hora realesJeff/Bill,
Noté que también fue en segundos, pero utilicé el formato disponible para convertirlo en el tiempo "adecuado".
Gracias de nuevo.
David
Re: Marca de tiempo de Unix a fecha y hora realesJeff,
Había notado que el 4 de enero de 1904 aparecía varias veces y pensé que había cometido algún error de formato o cálculo, esto solo aumentó mi confusión de por qué no podía hacer que esta conversión de fecha funcionara.
Gracias por tu ayuda
David
Re: Marca de tiempo de Unix a fecha y hora realesOtro complemento: hablé con Jeff sin conexión y expresó un muy buen punto.No utilice la cadena de caracteres "MDYHMS" si desea hacer algunos cálculos con sus marcas de tiempo.Utilice Información de columna para formatear sus nuevos tiempos como datos continuos.

Re: Marca de tiempo de Unix a fecha y hora realesSolo un complemento a la publicación de Jeff.Cuando usé su fórmula obtuve el número de segundos.Agregué el formato MDYHMS a la fórmula para obtener fecha y hora.

Factura
Re: Marca de tiempo de Unix a fecha y hora realesLa fecha UNIX es el número de segundos desde la medianoche del 1 de enero de 1970.
JMP almacena las fechas como el número de segundos desde la medianoche del 1 de enero de 1904.
Entonces, solo necesitamos agregar el valor de fecha JMP del 1 de enero de 1970 al valor de fecha Unix. Puede utilizar la función Fecha DMY() para hacer esto:

-Jeff
Re: Marca de tiempo de Unix a fecha y hora realesPruebe 1 de enero de 1970 sin comillas.
formato (1 de enero de 1970+1445432452, "mdy")
"21/10/2015"
(Eso es hoy, para referencia futura.Obtuve Convertidor de época - Convertidor de marca de tiempo Unix para darme el tiempo de Unix para hoy: 1445432452)
Agregar 1 de enero de 1970 funciona porque el tiempo de Unix para el 1 de enero de 1970 es cero.Y porque tanto JMP como Unix cuentan en segundos.
Tenga cuidado, he visto algunas discusiones sobre cuándo comenzó realmente la época Unix: Tiempo Unix - Wikipedia, la enciclopedia libre dice
The first edition Unix Programmer's Manual dated 3 November 1971 defines the Unix time as "the time since 00:00:00, 1 January 1971, measured in sixtieths of a second".[5]The User Manual also commented that "the chronologically-minded user will note that 232 sixtieths of a second is only about 2.5 years". Because of this limited range, the epoch was redefined more than once,[citation needed] before the rate was changed to 1 Hz and the epoch was set to its present value of 1 January 1970 00:00:00 UTC. This yielded a range of about 136 years, though with more than half the range in the past (see discussion of signedness above).