Iniciar Sesión

Ver la Versión Completa : [Sintaxis] Pasar fecha a formato unix


Fito
16 de noviembre de 2021, 16:37
Holaaa:

Alguien sabe cómo pasar una fecha a formato unix?

Saludos...

Fito

JCantero
16 de noviembre de 2021, 17:02
Buscas algo hecho o lo quieres implementar tu ?

Aqui te copio un repositorio para convertir:

Microsoft Excel formula to convert ISO 8601 date with milliseconds resolution to time stamp · GitHub (https://gist.github.com/edonosotti/c079a92d05dc6b6ecf2a56e0a6b79f13#file-formula-md)


Formula
This will convert an ISO 8601 date such as: 2018-03-19T10:18:08.137747874Z

to a timestamp with milliseconds resolution: 1521454688137,00

Please note that the decimal part (,00) can be stripped away, milliseconds are the last three digits.

=(((DATEVALUE(LEFT(A1;10))+TIMEVALUE(MID(A1;12;8)) )-DATE(1970;1;1))*86400000)+VALUE(MID(A1;FIND(".";A1)+1;3))

Kuk
16 de noviembre de 2021, 17:45
@Fito, lo que estás buscando es convertir un timestamp al numero de segundos?

Fito
16 de noviembre de 2021, 20:19
Holaaa:

Ya estuve buscando soluciones y el tema es que el integer-of-date del cobol, toma los dias a partir de 1900 y el unix a partir de 1970. Entonces hice un cáculo restando la diferencia. A esos días lo multiplico por la cantidad de segundos por dia y si tengo hora hago lo mismo con ellas. Lo único a tener en cuenta que toma el uso horario 0. Acá en la Argentina tenemos -3, esa diferencia hay que tenerla en cuenta.

Ya está solucionado.


compute x1970 = function integer-of-date(19700101).

compute xdias = function integer-of-date(tpenfec).
compute xfecha = ((xdias - x1970) * 86400 + 43200) * 1000.


le sumo esos 43200 porque serían los segundos a las 12 del mediodía, como no llevo la hora, la tomo así por el tema antes explicado del uso horario..

Y por 1000 al final porque el programa al cual le estoy pasando esa fecha lo quería en milisegundos

Saludos...

Fito...