4 puntos por GN⁺ 2023-11-12 | 1 comentarios | Compartir por WhatsApp
  • Que el timestamp de Unix entre en el rango de los 1.700 millones significa que se han acumulado esa cantidad de segundos desde el 1 de enero de 1970 UTC; un valor de ejemplo se muestra como 1782553539
  • La herramienta de conversión convierte timestamps a GMT, a la zona horaria del usuario y a tiempo relativo, y admite unidades de segundos, milisegundos, microsegundos y nanosegundos
  • Muestra el mismo momento también en ISO 8601 y en varios formatos RFC, lo que facilita comparar las diferencias en la representación de fechas entre sistemas
  • Como el timestamp de Unix apunta al mismo instante independientemente de la ubicación, es útil para el seguimiento y ordenamiento de información de fechas en aplicaciones distribuidas
  • El 19 de enero de 2038, el desbordamiento de 32 bits será un problema, por lo que las aplicaciones deberán adoptar nuevas convenciones de timestamps o migrar a sistemas de 64 bits

Bases y método de conversión del timestamp de Unix

  • El timestamp de Unix es una forma de manejar el tiempo como un valor acumulado en segundos
    • El punto de referencia es el Unix Epoch del 1 de enero de 1970 UTC
    • La cantidad de segundos transcurridos entre una fecha específica y el Unix Epoch se convierte en el valor del timestamp
    • Este valor apunta al mismo instante sin importar en qué lugar del mundo esté el usuario
  • La herramienta de conversión de la página admite tanto la entrada de timestamps como la entrada de fecha/hora
    • Los timestamps pueden ingresarse en unidades de segundos, milisegundos, microsegundos y nanosegundos
    • La fecha/hora se convierte a timestamp de Unix ingresando año, mes, día, hora en formato de 24 horas, minutos y segundos
    • El resultado puede consultarse en formato GMT, en la zona horaria del usuario y como tiempo relativo

Formatos de hora estándar que se muestran en conjunto

  • El ejemplo actual de epoch se ofrece junto con varios formatos de hora estándar

Conversión de unidades de tiempo y el problema del año 2038

  • La página muestra la conversión de unidades de tiempo legibles por humanos a la cantidad de segundos de un timestamp de Unix
    • 1 hora: 3600 segundos
    • 1 día: 86400 segundos
    • 1 semana: 604800 segundos
    • 1 mes, con base en 30,44 días: 2629743 segundos
    • 1 año, con base en 365,24 días: 31556926 segundos
  • El 19 de enero de 2038, el timestamp de Unix dejará de funcionar debido a un desbordamiento de 32 bits
    • Antes de eso, millones de aplicaciones deberán adoptar nuevas convenciones de timestamps
    • O bien deberán migrar a sistemas de 64 bits para ampliar aún más el período durante el cual pueden usar timestamps

1 comentarios

 
GN⁺ 2023-11-12
Opiniones de Hacker News
  • 100 millones de segundos pasan demasiado rápido
    Como referencia, la portada de The New York Times en el Unix timestamp 1600000034 era esta:
    https://web.archive.org/web/20200913122714/https://www.nytim...
    Y las de los momentos 1500000301, 1400000634 y 1300007806 están aquí, respectivamente:
    https://web.archive.org/web/20170714024501/http://www.nytime...
    https://web.archive.org/web/20140513170354/http://www.nytime...
    https://web.archive.org/web/20110313091646/http://www.nytime...

    • Son 3.17 años
  • El Unix timestamp 1 600 000 000 tampoco fue hace tanto: fue el 2020-09-13 12:26:40 UTC
    La discusión de HN de entonces está aquí: https://news.ycombinator.com/item?id=24452885
    Mi post de blog para conmemorar ese evento está aquí: https://susam.net/maze/unix-timestamp-1600000000.html
    100 000 000 segundos son aproximadamente 3 años y 2 meses, así que vemos eventos como este cada pocos años
    Creo que el evento más espectacular será el Unix timestamp 2 000 000 000, para el que todavía faltan 9 años y medio: 2033-05-18 03:33:20 UTC. Algo así solo ocurre aproximadamente una vez cada 33 años y 8 meses
    En Python, 1700000000 sale así:
    $ python3 -q

    from datetime import datetime
    datetime.utcfromtimestamp(1_700_000_000)
    datetime.datetime(2023, 11, 14, 22, 13, 20)

    GNU date (Linux):
    $ date -ud @1700000000
    Tue Nov 14 22:13:20 UTC 2023
    BSD date (macOS, FreeBSD, OpenBSD, etc.):
    $ date -ur 1700000000
    Tue 14 Nov 2023 22:13:20 UTC

    • ¡33 años! A fines de los 90 pasaba el tiempo jugando MUD y, por alguna razón, había muchos archivos guardados que usaban epoch timestamps como nombre de archivo
      Cuando me hice cargo de parte del codebase, trabajé mucho con esos archivos, y todos eran números en el rango de 800 a 900 millones
      En algún momento, con solo ver números de ese rango ya podía intuir de inmediato más o menos de qué año y mes eran, con un margen de error de unas pocas semanas
      Los entornos raros desarrollan superpoderes raros
      [0] https://en.wikipedia.org/wiki/Multi-user_dungeon
    • Un evento aún más espectacular será cuando llegue al número redondo 2,147,483,648 en enero de 2038
    • Creo que 2222222222 es más especial: Sat Jun 02 2040 03:57:02 GMT+0000
      Si tengo suerte, quizá también llegue a ver 3333333333 en persona. Será un gran día
  • Es el momento perfecto para abrir https://datetime.store/ y apuntarle a la camiseta perfecta

    • Ese sitio web seguramente se va a caer con ganas el martes…
      “¡Jefe! ¡Nos están haciendo DDoS!”
      “No, hijo, solo es martes”
    • Podrías usar algo como un reloj de la muerte que calcule estadísticamente cuándo vas a morir
      Me pregunto si también se podrá encontrar una camiseta que imprima esa hora
    • Me recuerda una idea que tuve hace tiempo para una taza de café de 1BTC. Era en los primeros tiempos, cuando Bitcoin subió por primera vez a 20 mil dólares
  • Me quedé despierto hasta tarde para ver el paso de 999,999,999 a mil millones, y pensé: “voy a recordar esta semana toda la vida”
    No sabía que, 60 horas después, el mundo entero recordaría esa semana

    • El timestamp 1000000000 (Sat 2001-09-08 18:46:40 PDT) provocó un bug en Remedy, el sistema de reportes de bugs que usábamos entonces
      El sistema almacenaba los segundos desde el epoch como una cadena de texto, pero asumía que cabían en 9 dígitos
      Cuando llegó a 1000000000, empezó a cortar el último dígito, así que volvió a Sat 1973-03-03 01:46:40 PST y avanzaba al 10% de la velocidad del tiempo real. Lo arreglaron bastante rápido
    • No recordaba que hubiera estado tan cerca, pero en esa época leía Slashdot obsesivamente y también fue útil durante el 11-S
      Seguro que también cubrieron el evento del epoch
  • En 2009 fui a una reunión por el 1234567890 en el lobby de un hotel en Boston

    • Estaba en turno nocturno en el piso de trading de un gran banco
      El líder de soporte técnico de derivados me avisó que se acercaba ese momento, así que abrí una shell y ejecuté el comando watch junto con el comando date para imprimir los segundos del epoch y ver el instante
      Después volví a trabajar
    • ¡Recuerdo ese momento! En ese entonces estaba en algún lugar tipo bar, pero me había preparado y tenía la laptop conmigo
      Para no perdérmelo, seguía presionando flecha arriba y Enter
  • Una de mis partes favoritas de A Deepness in the Sky, de Vinge, es el uso del tiempo decimal: unidades como ksec y Msec.
    Hay una escala logarítmica genial que muestra la conversión entre el tiempo terrestre y el tiempo decimal.

    • ¡Exacto! Gracias a ese libro, ahora sé sin tener que buscarlo que un ksec son aproximadamente 15 minutos y un Msec son más o menos 2 semanas.
      Es más útil de lo que uno esperaría para hacer cálculos rápidos.
      Ya sabía que un Gsec es como un tercio de siglo gracias a la observación de Tom Duff.
      No creo que vayamos a migrar pronto, en general, a un sistema así. Las unidades vinculadas a los ritmos biológicos son demasiado cómodas.
      Aun así, me sorprende un poco que no se vea más seguido cuando se habla de humanos en el espacio.
      [0] "How many seconds are there in a year? If I tell you there are 3.155 x 10^7, you won't even try to remember it. On the other hand, who could forget that, to within half a percent, pi seconds is a nanocentury." --Tom Duff
    • Los arqueólogos de software de ese libro pensaban erróneamente que el epoch de time_t no era simplemente 1970, sino que apuntaba al alunizaje :)
    • Los Emergents también eran geniales. Era un mundo donde progresistas liberales habían creado una utopía, con 100% de empleo y palacios de diamantes para todos.
  • Faltan 5,148 días para el 19 de enero de 2038.
    Si vivo hasta entonces, el día siguiente será mi cumpleaños número 65. Llegaré justo a tiempo para el Armagedón digital.

  • Más que el momento en que cambia la notación decimal, tiene más sentido conmemorar el momento en que un bit de una posición relativamente alta pasa de 0 a 1.

  • Me gusta la unidad de 100 millones de segundos.
    Es más larga que un año y más corta que 10 años. La era de 1.6e8 fue la pandemia. ¿Qué traerá 1.7e8?

  • Me gusta que a otras personas también les entusiasmen estas cosas. Si eres fan de UNIX Timeval, te conviene probar esta herramienta tf [1].
    Durante 15 años y medio usé todos los días una que un amigo había hecho en C/Lex/Yacc, y para compartir esa alegría la porté a Golang + Homebrew.
    [1] https://github.com/neomantra/tf
    brew tap neomantra/homebrew-tap
    brew install tf
    Probé imprimir estos números redondos. tf los detecta automáticamente desde 10 dígitos, así que también empecé seq desde ahí.

    for TV in $(seq -f %.f 1000000000 100000000 2000000000); do echo $TV $TV | tf -d ; done
    2001-09-08 18:46:40 1000000000
    2004-11-09 03:33:20 1100000000
    2008-01-10 13:20:00 1200000000
    2011-03-12 23:06:40 1300000000
    2014-05-13 09:53:20 1400000000
    2017-07-13 19:40:00 1500000000
    2020-09-13 05:26:40 1600000000
    2023-11-14 14:13:20 1700000000
    2027-01-15 00:00:00 1800000000
    2030-03-17 10:46:40 1900000000
    2033-05-17 20:33:20 2000000000
    También hay fechas divertidas. -g detecta varias en una misma línea, y -d incluye las fechas.
    echo 1234567890 __ 3141592653 | tf -gd
    2009-02-13 15:31:30 __ 2069-07-20 17:37:33
    Que lo disfruten. ¡Espero que les ahorre tiempo al averiguar la hora!