Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Pasar fecha a formato unix (https://www.cobolforo.es/showthread.php?t=1403)

Fito 16 de noviembre de 2021 16:37

Pasar fecha a formato unix
 
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


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.

Código VB:
  1. =(((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.

Código COBOL:
  1.      compute x1970 = function integer-of-date(19700101).
  2.  
  3.      compute xdias  = function integer-of-date(tpenfec).
  4.      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...


La franja horaria es GMT +2. Ahora son las 00:31.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.