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.Date
métodos toInstant()
para Date
convertir un objeto en Instant
un objeto, luego use Instant
el método de un objeto atZone()
para convertirlo en ZonedDateTime
un objeto y finalmente use ZonedDateTime
el método de un objeto toLocalDate()
para convertirlo en LocalDate
un 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.Date
métodos toInstant()
para Date
convertir un objeto en Instant
un objeto, luego use Instant
el método de un objeto atOffset()
para convertirlo en OffsetDateTime
un objeto y finalmente use OffsetDateTime
el método de un objeto toLocalDate()
para convertirlo en LocalDate
un 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.Calendar
una clase para convertir el objeto Fecha en LocalDate
un objeto. Primero, debe Date
convertir el objeto en Calendar
un objeto, luego usar Calendar
los 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 LocalDate
un 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 SimpleDateFormat
clases para Date对
convertir objetos en LocalDate
objetos. Primero debe crear un SimpleDateFormat
objeto, luego usar format()
el método para Date
formatear el objeto en el formato de fecha especificado y finalmente usar LocalDate.parse()
el método para convertirlo en LocalDate
un 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.Date
métodos toInstant()
para Date
convertir un objeto en Instant
un objeto, luego use Instant
el método de un objeto atZone()
para convertirlo en ZonedDateTime
un objeto y finalmente use ZonedDateTime
el método de un objeto toLocalTime()
para convertirlo en LocalDate
un 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.Date
métodos toInstant()
para Date
convertir un objeto en Instant
un objeto, luego use Instant
el método de un objeto atOffset()
para convertirlo en OffsetDateTime
un objeto y finalmente use OffsetDateTime
el método de un objeto toLocalTime()
para convertirlo en LocalDate
un objeto.
// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalTime
LocalTime localTime = date.toInstant().atOffset(ZoneOffset.UTC).toLocalTime();
3. Use SimpleDateFormat
convertir Date
objeto a LocalTime
objeto.
// 创建一个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 Calendar
clases para Date
convertir objetos en LocalDate
objetos.
// 创建一个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 .Instant
LocalDateTime
// 创建一个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.Date
métodos toInstant()
para Date
convertir un objeto en Instant
un objeto, luego use Instant
el método de un objeto atOffset()
para convertirlo en OffsetDateTime
un objeto y finalmente use OffsetDateTime
el método de un objeto toLocalDateTime()
para convertirlo en LocalDateTime
un 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 Date
convierta el objeto en ZonedDateTime
un objeto y luego use toLocalDateTime()
el método para convertirlo en LocalDateTime
un objeto.
// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDateTime
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
3. Use SimpleDateFormat
convertir Date
objeto a LocalDateTime
objeto.
// 创建一个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 Calendar
convertir Date
objeto a LocalDateTime
objeto.
// 创建一个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 Instant
convertir el objeto y la zona horaria especificada en ZonedDateTime
objeto.
// 创建一个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 Instant
convertir el objeto y la zona horaria especificada en ZonedDateTime
el 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 ZonedDateTime
convertir el objeto en OffsetDateTime
Object, una subclase de OffsetDateTime
Object ZonedDateTime
, que representa una fecha y hora con un desplazamiento. Al convertir, ZonedDateTime
la 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 puedeZoneId.of(String)
especificar mediante el método.