Java8 时间转换(LocalDateTime)代码实例
Java8 中的 LocalDateTime 是一个非常重要的日期时间类,它提供了非常丰富的日期时间操作功能。在 Java8 中,LocalDateTime 可以与 Instant、ZoneId 等类结合使用,实现日期时间的转换操作。
一、将 LocalDateTime 转换为自定义的时间格式的字符串
在 Java8 中,可以使用 DateTimeFormatter 类将 LocalDateTime 转换为自定义的时间格式的字符串。以下是代码示例:
```java
public static String getDateTimeAsString(LocalDateTime localDateTime, String format) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return localDateTime.format(formatter);
}
```
在上面的代码中,我们首先使用 `DateTimeFormatter.ofPattern` 方法创建了一个 DateTimeFormatter 对象,然后使用 `format` 方法将 LocalDateTime 转换为自定义的时间格式的字符串。
二、将 long 类型的时间戳转换为 LocalDateTime
在 Java8 中,可以使用 Instant 和 ZoneId 类将 long 类型的时间戳转换为 LocalDateTime。以下是代码示例:
```java
public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
Instant instant = Instant.ofEpochMilli(timestamp);
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
```
在上面的代码中,我们首先使用 `Instant.ofEpochMilli` 方法将 long 类型的时间戳转换为 Instant 对象,然后使用 `ofInstant` 方法将 Instant 对象转换为 LocalDateTime。
三、将 LocalDateTime 转换为 long 类型的时间戳
在 Java8 中,可以使用 Instant 和 ZoneId 类将 LocalDateTime 转换为 long 类型的时间戳。以下是代码示例:
```java
public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
return instant.toEpochMilli();
}
```
在上面的代码中,我们首先使用 `atZone` 方法将 LocalDateTime 转换为 ZonedDateTime,然后使用 `toInstant` 方法将 ZonedDateTime 转换为 Instant 对象,最后使用 `toEpochMilli` 方法将 Instant 对象转换为 long 类型的时间戳。
四、将某时间字符串转换为自定义时间格式的 LocalDateTime
在 Java8 中,可以使用 DateTimeFormatter 类将某时间字符串转换为自定义时间格式的 LocalDateTime。以下是代码示例:
```java
public static LocalDateTime parseStringToDateTime(String time, String format) {
DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
return LocalDateTime.parse(time, df);
}
```
在上面的代码中,我们首先使用 `DateTimeFormatter.ofPattern` 方法创建了一个 DateTimeFormatter 对象,然后使用 `parse` 方法将某时间字符串转换为自定义时间格式的 LocalDateTime。
Java8 中的 LocalDateTime 提供了非常丰富的日期时间操作功能,通过组合使用 Instant、ZoneId 和 DateTimeFormatter 等类,可以实现日期时间的各种转换操作。