如何在 Java 中将 Date 对象转换为 LocalDate 对象?
java 8object oriented programmingprogramming更新于 2025/4/29 1:07:17
在 Java 中将 Date 对象转换为 LocalDate 对象 −
使用 toInstant() 方法将获取的 date 对象转换为 Instant 对象。
Instant instant = date.toInstant();
使用 Instant 类的 atZone() 方法创建 ZonedDateTime 对象。
ZonedDateTime zone = instant.atZone(ZoneId.systemDefault());
最后,使用 toLocalDate() 方法将 ZonedDateTime 对象转换为 LocalDate 对象。
LocalDate givenDate = zone.toLocalDate();
示例
以下示例以字符串格式接受用户的姓名和出生日期,并将其转换为 LocalDate 对象并打印出来。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.Date; import java.util.Scanner; public class DateToLocalDate { public static void main(String args[]) throws ParseException { //从用户那里读取姓名和出生日期 Scanner sc = new Scanner(System.in); System.out.println("Enter your name: "); String name = sc.next(); System.out.println("Enter your date of birth (dd-MM-yyyy): "); String dob = sc.next(); //将字符串转换为日期 SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); Date date = formatter.parse(dob); //将获取的 Date 对象转换为 LocalDate 对象 Instant instant = date.toInstant(); ZonedDateTime zone = instant.atZone(ZoneId.systemDefault()); LocalDate localDate = zone.toLocalDate(); System.out.println("Local format of the given date of birth String: "+localDate); } }
输出
Enter your name: Krishna Enter your date of birth (dd-MM-yyyy): 26-09-1989 Local format of the given date of birth String: 1989-09-26