Puntos básicos de Java Resumen Cinco Fecha y hora

1. API clásica de fecha/hora

java.util.Date 类
java.sql.Date 类
java.util.Calendar 类
java.util.GregorianCalendar 类
java.util.TimeZone 类
java.sql.Time 类
java.sql.Timestamp 类

1. clase java.util.Date

        La clase Date representa una hora específica con precisión de milisegundos. La clase Date del paquete java.util implementa las interfaces serializable, clonable y comparable. Proporciona constructores y métodos para trabajar con fechas y horas en Java.

        Constructor aún no obsoleto

        Fecha (): crea un objeto de fecha que representa la fecha y la hora actuales.

        Fecha (milisegundos largos): crea un objeto Fecha para los milisegundos dados desde el 1 de enero de 1970 00:00:00 GMT.

2, java.sql.Fecha

        El constructor, Fecha (milisegundos largos), crea un objeto de fecha SQL para los milisegundos dados desde el 1 de enero de 1970 00:00:00 GMT.

3、​java.util.Calendar​

        La clase Java Calendar es una clase abstracta que proporciona métodos para convertir fechas entre un momento específico y un conjunto de campos de calendario como MES, AÑO, HORA, etc. Hereda la clase Object e implementa la interfaz Comparable.

4, java.util.GregorianCalendar

        GregorianCalendar es una subclase concreta de Calendar y proporciona el sistema de calendario estándar utilizado en la mayor parte del mundo.

5, java.util.TimeZone

        La clase TimeZone se usa para representar compensaciones de zona horaria y también para calcular el horario de verano.

        Establecer código de referencia de zona horaria

final TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone.setDefault(timeZone);

6、java.sql.Tiempo

        Heredado de la clase java.util.Date, que permite que la API de JDBC lo reconozca como un valor SQL TIME. La clase Time agrega operaciones de formato y análisis para admitir la sintaxis de escape de JDBC para valores de tiempo.

 7, java.sql.Marca de tiempo

        Heredado de la clase java.util.Date, que permite que la API de JDBC lo reconozca como un valor SQL TIMESTAMP. Agrega la capacidad de guardar valores de segundos fraccionarios de SQL TIMESTAMP, lo que permite especificar segundos fraccionarios con precisión de nanosegundos. La marca de tiempo también proporciona operaciones de formato y análisis para admitir la sintaxis de escape de JDBC para los valores de marca de tiempo.

En segundo lugar, los problemas existentes en la API clásica

        Seguridad de subprocesos: las clases de fecha y calendario originales no proporcionan seguridad de subprocesos. Como tal, conduce a problemas de simultaneidad difíciles de depurar que los desarrolladores deben tener en cuenta. La nueva API de fecha y hora de Java 8 brinda seguridad e inmutabilidad de subprocesos, lo que evita problemas de concurrencia para los desarrolladores.

        Mal diseño de la API: la API clásica de fecha y calendario no proporciona una forma de 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 muchos métodos diferentes para realizar operaciones en fechas, horas, duraciones y períodos.

        Dificultad en el manejo de zonas horarias: el manejo de zonas horarias con las clases clásicas de fecha y calendario es difícil porque los desarrolladores deben escribir lógica para ellas. Con la nueva API, el manejo de la zona horaria se puede hacer fácilmente usando las API Local y ZonedDate/Time.

3. API de fecha/hora de Java 8

        La mayoría de las clases en la API de fecha y hora de Java8 crean objetos inmutables, lo que significa que los objetos no se pueden modificar una vez creados. Para cambiar el valor de un objeto inmutable, el nuevo objeto debe construirse como una copia modificada del original. Esto también significa que la API de fecha y hora es segura para subprocesos por definición.

java.time.LocalDate 类
java.time.LocalTime 类
java.time.LocalDateTime 类
java.time.MonthDay 类
java.time.OffsetTime 类
java.time.OffsetDateTime 类
java.time.Clock 类
java.time.ZonedDateTime 类
java.time.ZoneId 类
java.time.ZoneOffset 类
java.time.Year 类
java.time.YearMonth 类
java.time.Period 类
java.time.Duration 类
java.time.Instant 类
java.time.DayOfWeek 枚举
java.time.Month 枚举

        java.time.LocalDate: Representa el año, mes y día en el calendario ISO y es útil para representar fechas sin hora. Se puede usar para representar información de solo fecha, como fechas de nacimiento o fechas de matrimonio.

        java.time.LocalTime: Solo se ocupa del tiempo. Es útil para representar horas del día basadas en personas, como las horas de cine o las horas de apertura y cierre de la biblioteca local.

        java.time.LocalDateTime: Se trata de fecha y hora, sin zona horaria. Es una combinación de LocalDate y LocalTime.

// 获取当前时间
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 两种写法都可以
System.out.println(dateTimeFormatter.format(localDateTime));
System.out.println(localDateTime.format(dateTimeFormatter));

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

        java.time.OffsetTime: Maneja horas con un desfase de zona horaria correspondiente a Greenwich/UTC, sin ID de zona horaria.

        java.time.OffsetDateTime: Maneja fechas y horas con un desfase de zona horaria correspondiente a Greenwich/UTC, sin ID de zona horaria.

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

        java.time.Instant: representa el comienzo de los nanosegundos en la línea de tiempo (desde EPOCH) y se puede usar para generar marcas de tiempo que representan el tiempo de la máquina. Los momentos que ocurren antes de la época tienen valores negativos y los momentos que ocurren después de la época tienen valores positivos.

        java.time.Duration: la diferencia entre dos instantes, en segundos o nanosegundos, sin usar construcciones basadas en fechas como año, mes y día, aunque esta clase proporciona métodos para convertir a días, horas y minutos.

        java.time.Period: se utiliza para definir la diferencia entre fechas en un valor basado en fechas (año, mes, día).

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

        java.time.ZoneOffset : Describe el desplazamiento de la zona horaria desde la hora de Greenwich/UTC.

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

Supongo que te gusta

Origin blog.csdn.net/bashendixie5/article/details/124355776
Recomendado
Clasificación