写一个Date 转 LocalDate的方法 和 一个 LocalDate转Date 的方法
时间: 2024-05-01 11:20:16 浏览: 20
Java 8 中的 LocalDate 类提供了一个 valueOf() 方法,可以将 Date 类型转换为 LocalDate 类型,也提供了一个 toDate() 方法,可以将 LocalDate 类型转换为 Date 类型。
以下是Date转LocalDate的方法:
```java
public static LocalDate dateToLocalDate(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
```
以下是LocalDate转Date的方法:
```java
public static Date localDateToDate(LocalDate localDate) {
return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
}
```
这两个方法都使用了 Java 8 中的新特性,需要在代码中导入 java.time 包。
相关问题
Date转LocalDate 类型工具方法
您可以使用`java.time.LocalDate`类的`parse()`方法将`String`类型的日期转换为`LocalDate`类型。以下是一个示例工具方法:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateUtils {
public static LocalDate convertStringToLocalDate(String dateString, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return LocalDate.parse(dateString, formatter);
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
String dateString = "2022-10-15";
String pattern = "yyyy-MM-dd";
LocalDate localDate = DateUtils.convertStringToLocalDate(dateString, pattern);
System.out.println(localDate);
}
}
```
在上述示例中,`convertStringToLocalDate()`方法接受一个日期字符串和日期格式模式作为参数,并返回相应的`LocalDate`对象。`DateTimeFormatter`类用于指定日期格式模式。最后,我们在`Main`类中调用该方法并打印结果。
用LocalDate 写一个 java.util.Date 转字符串的方法
可以使用Java 8引入的`LocalDate`类和`DateTimeFormatter`类来实现`java.util.Date`转字符串的方法。具体实现代码如下:
```java
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
public class DateUtil {
/**
* 将java.util.Date转换为字符串
* @param date 需要转换的日期
* @param pattern 转换的格式,例如:yyyy-MM-dd
* @return 转换后的字符串
*/
public static String dateToStr(Date date, String pattern) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 将java.util.Date转换为字符串(使用Java 8引入的LocalDate类)
* @param date 需要转换的日期
* @param pattern 转换的格式,例如:yyyy-MM-dd
* @return 转换后的字符串
*/
public static String dateToStrJava8(Date date, String pattern) {
LocalDate localDate = date.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return localDate.format(formatter);
}
}
```
使用示例:
```java
public static void main(String[] args) {
Date date = new Date();
String pattern = "yyyy-MM-dd";
String strDate = DateUtil.dateToStr(date, pattern);
System.out.println(strDate);
String strDateJava8 = DateUtil.dateToStrJava8(date, pattern);
System.out.println(strDateJava8);
}
```