¡La clase de fecha para la nueva clase de tiempo de Java8 es suficiente para leer este artículo, los métodos Date to LocalDate, LocalTime, LocalDateTime, ZonedDateTime, OffsetDateTime!

Fecha a Java8 nueva clase de tiempo

1. Fecha a LocalDate:

LocalDate representa la fecha sin información de hora y zona horaria, como "2022-04-22".

1. Use java.util.Datemétodos toInstant()para Dateconvertir un objeto en Instantun objeto, luego use Instantel método de un objeto atZone()para convertirlo en ZonedDateTimeun objeto y finalmente use ZonedDateTimeel método de un objeto toLocalDate()para convertirlo en LocalDateun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

2. Use java.util.Datemétodos toInstant()para Dateconvertir un objeto en Instantun objeto, luego use Instantel método de un objeto atOffset()para convertirlo en OffsetDateTimeun objeto y finalmente use OffsetDateTimeel método de un objeto toLocalDate()para convertirlo en LocalDateun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
LocalDate localDate = date.toInstant().atOffset(ZoneOffset.UTC).toLocalDate();

3. Utilice java.util.Calendaruna clase para convertir el objeto Fecha en LocalDateun objeto. Primero, debe Dateconvertir el objeto en Calendarun objeto, luego usar Calendarlos métodos del objeto get()para obtener información como año, mes, día, etc. y finalmente usar LocalDate.of()los métodos para convertirlo en LocalDateun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
LocalDate localDate = LocalDate.of(year, month, day);

4. Usa SimpleDateFormatclases para Date对convertir objetos en LocalDateobjetos. Primero debe crear un SimpleDateFormatobjeto, luego usar format()el método para Dateformatear el objeto en el formato de fecha especificado y finalmente usar LocalDate.parse()el método para convertirlo en LocalDateun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateString = dateFormat.format(date);
LocalDate localDate = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("yyyy-MM-dd"));

2. Fecha a hora local:

LocalTime representa la hora sin información de fecha y zona horaria, como "09:30:00".

1. Use java.util.Datemétodos toInstant()para Dateconvertir un objeto en Instantun objeto, luego use Instantel método de un objeto atZone()para convertirlo en ZonedDateTimeun objeto y finalmente use ZonedDateTimeel método de un objeto toLocalTime()para convertirlo en LocalDateun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalTime
LocalTime localTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();

2. Use java.util.Datemétodos toInstant()para Dateconvertir un objeto en Instantun objeto, luego use Instantel método de un objeto atOffset()para convertirlo en OffsetDateTimeun objeto y finalmente use OffsetDateTimeel método de un objeto toLocalTime()para convertirlo en LocalDateun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalTime
LocalTime localTime = date.toInstant().atOffset(ZoneOffset.UTC).toLocalTime();

3. Use SimpleDateFormatconvertir Dateobjeto a LocalTimeobjeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalTime
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
LocalTime localTime = LocalTime.parse(sdf.format(date));

4. Use Calendarclases para Dateconvertir objetos en LocalDateobjetos.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalTime
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
LocalTime localTime = LocalTime.of(hour, minute, second);

3. Fecha a LocalDateTime:

LocalDateTime representa la fecha y la hora sin información de zona horaria, como "2022-04-22T09:30:00".

1. Convierta un objeto en un objeto utilizando ofInstant()un método .InstantLocalDateTime

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDateTime
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());

2. Use java.util.Datemétodos toInstant()para Dateconvertir un objeto en Instantun objeto, luego use Instantel método de un objeto atOffset()para convertirlo en OffsetDateTimeun objeto y finalmente use OffsetDateTimeel método de un objeto toLocalDateTime()para convertirlo en LocalDateTimeun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalTime
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println(localDateTime);

2. Primero Dateconvierta el objeto en ZonedDateTimeun objeto y luego use toLocalDateTime()el método para convertirlo en LocalDateTimeun objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDateTime
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

3. Use SimpleDateFormatconvertir Dateobjeto a LocalDateTimeobjeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDateTime
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 根据格式化字符串创建DateTimeFormatter对象
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(sdf.format(date), formatter);

4. Use Calendarconvertir Dateobjeto a LocalDateTimeobjeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDateTime
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
LocalDateTime localDateTime = LocalDateTime.of(
    calendar.get(Calendar.YEAR),
    calendar.get(Calendar.MONTH) + 1,
    calendar.get(Calendar.DAY_OF_MONTH),
    calendar.get(Calendar.HOUR_OF_DAY),
    calendar.get(Calendar.MINUTE),
    calendar.get(Calendar.SECOND),
    calendar.get(Calendar.MILLISECOND) * 1000000
);

4. Fecha a ZonedDateTime:

ZonedDateTime representa la fecha y la hora con la zona horaria, por ejemplo, "2022-04-22T09:30:00+08:00[GMT+08:00]".

1. Utilice atZone()el método para Instantconvertir el objeto y la zona horaria especificada en ZonedDateTimeobjeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.ZonedDateTime
ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault());

2. Utilice ofInstant()el método para Instantconvertir el objeto y la zona horaria especificada en ZonedDateTimeel objeto.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.ZonedDateTime
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());

5. Fecha a OffsetDateTime:

OffsetDateTime representa una fecha y hora con un desplazamiento, como "2022-04-22T09:30:00+08:00".

1. Llame toOffsetDateTime()al método para ZonedDateTimeconvertir el objeto en OffsetDateTimeObject, una subclase de OffsetDateTimeObject ZonedDateTime, que representa una fecha y hora con un desplazamiento. Al convertir, ZonedDateTimela información de la zona horaria del objeto se convertirá automáticamente en la información de desplazamiento correspondiente.

// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.OffsetDateTime
OffsetDateTime offsetDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toOffsetDateTime();

En el código de ejemplo anterior, la información de zona horaria predeterminada del sistema se usa ZoneId.systemDefault()para especificar otra información de zona horaria, que se puede ZoneId.of(String)especificar mediante el método.

Supongo que te gusta

Origin blog.csdn.net/TangBoBoa/article/details/130294701
Recomendado
Clasificación