martes, 10 de abril de 2018

Cómo pasar TimeStamp a formato fecha en Excel

Timestamp

Comenzaré definiendo a timestamp por el sentido utilizado en informática que difiere un poco de su forma "normal" especificada en la ISO 8601.  Así podemos decir que existen dos definiciones de Timestamp: según UNIX el tipo de dato Timestamp es la cantidad de segundos transcurridos desde media noche (00:00:00) UTC del primero de enero de 1970.  Pero también se utilizan la cantidad de milisegundos transcurridos desde esa misma fecha, por lo que al momento de realizar la conversión vamos a tener que saber con que timestamp estamos trabajando, es decir si es o no un timestamp UNIX.  Esto puede ser un problema para nosotros humanos, sobre todo cuando tenemos que presentar esta información en reportes y, si bien la mayoría de las herramientas que existen hoy día ofrecen alguna función para pasar de Timestamp a una fecha legible por nosotros, Excel no lo hace, o al menos no hasta el momento de escribir este artículo.  Para solucionar ese problema podemos podemos aplicar la fórmula que dejo a continuación tomando en cuenta que la columna destino (aquella donde se copia la fórmula) debe colocarse en formato fecha y, dado que la marca de tiempo del dato origen contiene dia, mes, año, hora, minuto y segundo, el formato elegido debería adaptarse a lo que necesitemos mostrar.,

Fórmula

=(A2/1000 + ("1/1/1970"-"1/1/1900"+1)*86400) / 86400 -3/24)

Donde:

A2 representa la celda con el timestamp origen

/1000 reduce el número de milisegundos a segundos (no debe usarse si el timestamp a convertir ya está en segundos)

("1/1/1970"-"1/1/1900"+1) excel opera como primer día calendario el primero de enero de 1900, por esto esta parte de la fórmula se encarga de equiparar el momento cero de UNIX con el momento cero de excel.

*86400 convierte a segundos el momento cero

/86400 convierte a días tiempo transcurrido desde el momento cero hasta el capturado en el timestamp (A2)

-3/24 recordemos que timestamp parte de UTC 0, por lo tanto si en nuestro país se utiliza un uso horario distinto, en mi caso, Argentina tiene  UTC-3, por lo que deberemos agregar esta porción a la fórmula para que funcione donde -3 representa el UTC que deseamos utilizar

No hay comentarios:

Publicar un comentario