in

Fecha y hora de Java – Javatpoint

Los paquetes java.time, java.util, java.sql y java.text contienen clases para representar la fecha y la hora. Las siguientes clases son importantes para tratar con la fecha en Java.

API de fecha / hora de Java 8

Java ha introducido una nueva API de fecha y hora desde Java 8. El paquete java.time contiene clases de fecha y hora de Java 8.

API clásica de fecha / hora

Pero la API de fecha Java clásica o antigua también es útil. Veamos la lista de clases clásicas de fecha y hora.

Formateo de fecha y hora

Podemos formatear la fecha y la hora en Java usando las siguientes clases:

API de fecha y hora de Java

Java proporciona la funcionalidad de fecha y hora con la ayuda de dos paquetes java.time y java.util. El paquete java.time se introduce en Java 8, y las clases recién introducidas intentan superar las deficiencias de las clases heredadas java.util.Date y java.util.Calendar.

Clases de API clásicas de fecha y hora

Las clases principales antes del lanzamiento de Java 8 fueron:

Java.lang.System: La clase proporciona el método currentTimeMillis () que devuelve la hora actual en milisegundos. Muestra la fecha y hora actual en milisegundos desde el 1 de enero de 1970.

java.util.Date: Se utiliza para mostrar un instante de tiempo específico, con unidades de milisegundos.

java.util.Calendar: Es una clase abstracta que proporciona métodos para convertir entre instancias y manipular los campos del calendario de diferentes formas.

java.text.SimpleDateFormat: Es una clase que se utiliza para formatear y analizar las fechas de una manera predefinida o patrón definido por el usuario.

java.util.TimeZone: Representa un desplazamiento de zona horaria y también calcula el horario de verano.

Inconvenientes de las API de fecha / hora existentes

  1. Seguridad del hilo: Las clases existentes, como Fecha y Calendario, no proporcionan seguridad para subprocesos. Por lo tanto, conduce a problemas de concurrencia difíciles de depurar que deben ser atendidos por los desarrolladores. Las nuevas API de fecha y hora de Java 8 brindan seguridad para los subprocesos y son inmutables, lo que evita el problema de concurrencia de los desarrolladores.
  2. Mal diseño de API: Las API clásicas de fecha y calendario no proporcionan métodos para realizar las funciones básicas del día a día. Las clases de fecha y hora introducidas en Java 8 están centradas en ISO y proporcionan varios métodos diferentes para realizar operaciones con respecto a la fecha, la hora, la duración y los períodos.
  3. Manejo de zona horaria difícil: Manejar la zona horaria usando las clases clásicas de fecha y calendario es difícil porque se suponía que los desarrolladores debían escribir la lógica para ello. Con las nuevas API, el manejo de la zona horaria se puede realizar fácilmente con las API Local y ZonedDate / Time.

Nueva API de fecha y hora en Java 8

La nueva API de fecha ayuda a superar los inconvenientes mencionados anteriormente con las clases heredadas. Incluye las siguientes clases:

java.time.LocalDate: Representa un año-mes-día en el calendario ISO y es útil para representar una fecha sin hora. Se puede utilizar para representar información de solo una fecha, como la fecha de nacimiento o la fecha de la boda.

java.time.LocalTime: Trata solo en el tiempo. Es útil para representar la hora del día basada en humanos, como la hora de las películas o la hora de apertura y cierre de la biblioteca local.

java.time.LocalDateTime: Maneja tanto la fecha como la hora, sin una zona horaria. Es una combinación de LocalDate con LocalTime.

java.time.ZonedDateTime: Combina la clase LocalDateTime con la información de zona proporcionada en la clase ZoneId. Representa una marca de fecha y hora completa junto con la información de la zona horaria.

java.time.OffsetTime: Maneja la hora con un desplazamiento de zona horaria correspondiente de Greenwich / UTC, sin un ID de zona horaria.

java.time.OffsetDateTime: Maneja una fecha y hora con un desplazamiento de zona horaria correspondiente de Greenwich / UTC, sin un ID de zona horaria.

java.time.Clock: Proporciona acceso al instante, la fecha y la hora actuales en cualquier zona horaria determinada. Aunque el uso de la clase Reloj es opcional, esta función nos permite probar su código para otras zonas horarias, o usando un reloj fijo, donde la hora no cambia.

java.time.Instant: Representa el inicio de un nanosegundo en la línea de tiempo (desde EPOCH) y es útil para generar una marca de tiempo para representar el tiempo de la máquina. Un instante que ocurre antes de la época tiene un valor negativo, y un instante que ocurre después de la época tiene un valor positivo.

java.time.Duration: Diferencia entre dos instantes y medido en segundos o nanosegundos y no utiliza construcciones basadas en fechas como años, meses y días, aunque la clase proporciona métodos que convierten a días, horas y minutos.

java.time.Period: Se utiliza para definir la diferencia entre fechas en valores basados ​​en fechas (años, meses, días).

java.time.ZoneId: Establece un identificador de zona horaria y proporciona reglas para convertir entre Instant y LocalDateTime.

java.time.ZoneOffset: Describe una diferencia de zona horaria con respecto a la hora UTC / Greenwich.

java.time.format.DateTimeFormatter: Viene con varios formateadores predefinidos, o podemos definir el nuestro. Tiene el método parse () o format () para analizar y formatear los valores de fecha y hora.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Propiedad de visibilidad CSS

Matemáticas discretas – Relación de recurrencia