Capítulo 18. ¿Sabes qué hora es?
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Christin Gorman
¿A qué hora llega el lunes el avión de Scandinavian Airlines de Oslo a Atenas? ¿Por qué preguntas que parecen tan fáciles en la vida cotidiana son tan difíciles en programación? El tiempo debería ser sencillo, sólo segundos que pasan, algo que un ordenador sabe medir muy bien:
System.currentTimeMillis() = 1570964561568
Aunque es correcto, 1570964561568 no es lo que queremos cuando preguntamos qué hora es. Preferimos las 13:15 del 13 de octubre de 2019.
Resulta que el tiempo es dos cosas distintas. Por un lado, tenemos el paso de los segundos. Por otro, tenemos un matrimonio infeliz entre la astronomía y la política. Responder a la pregunta "¿Qué hora es?" depende de la ubicación del sol en el cielo respecto a tu posición, junto con las decisiones políticas tomadas en esa región hasta ese momento.
Muchos de los problemas que tenemos con la fecha y la hora en el código provienen de mezclar estos dos conceptos. Utilizar la última biblioteca java.time (o Noda Time en .NET) te ayudará. Aquí tienes tres conceptos principales que te ayudarán a razonar correctamente sobre la hora: LocalDateTime, ZonedDateTime, y Instant.
LocalDateTime se refiere al concepto 13:15 h. del 13 de octubre de 2019. Puede haber cualquier número ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access