欢迎访问宙启技术站
智能推送

Java函数如何实现时间日期的转换

发布时间:2023-06-09 01:31:21

在Java中,我们可以使用java.time包中的类来实现时间日期的转换。其中,主要涉及到以下几个类:

1. LocalDate

LocalDate类表示不带时区的日期。我们可以通过该类的parse()方法将一个字符串转化为LocalDate对象,该方法的参数为一个字符串格式化的模板,如下所示:

String strDate = "2021-06-15";
LocalDate localDate = LocalDate.parse(strDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));

2. LocalTime

LocalTime类表示不带时区的时间。我们可以通过该类的parse()方法将一个字符串转化为LocalTime对象,该方法的参数为一个字符串格式化的模板,如下所示:

String strTime = "12:30:00";
LocalTime localTime = LocalTime.parse(strTime, DateTimeFormatter.ofPattern("HH:mm:ss"));

3. LocalDateTime

LocalDateTime类表示不带时区的日期时间。我们可以通过该类的parse()方法将一个字符串转化为LocalDateTime对象,该方法的参数为一个字符串格式化的模板,如下所示:

String strDateTime = "2021-06-15T12:30:00";
LocalDateTime localDateTime = LocalDateTime.parse(strDateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));

4. ZonedDateTime

ZonedDateTime类表示带时区的日期时间。我们可以通过该类的parse()方法将一个字符串转化为ZonedDateTime对象,该方法的参数为一个字符串格式化的模板,如下所示:

String strZonedDateTime = "2021-06-15T12:30:00+08:00[Asia/Shanghai]";
ZonedDateTime zonedDateTime = ZonedDateTime.parse(strZonedDateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX[z]"));

5. Date

我们也可以将java.util包中的Date类转换成java.time包中的LocalDateTime类来使用。如下所示:

Date date = new Date();
Instant instant = date.toInstant();
LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();

同时,我们也可以将LocalDateTime类转换成Date类。如下所示:

LocalDateTime localDateTime = LocalDateTime.now();
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);

总体来说,我们可以使用以上的方式来实现时间日期的转换。需要注意的是,不同的时间日期类,字符串格式化模板会有所不同,需要根据具体情况选择合适的模板进行转换。