Java程序将LocalDate转换为java.util.Date
假设日期以LocalDate格式给出,我们的任务是编写一个Java程序将其转换为java.util.Date。对于此问题,我们需要通过将其与时间(例如午夜)或时区组合来向LocalDate添加时间信息。
既LocalDate和java.util.Date类都用于在Java中表示日期。但是,随着Java 8的发布而引入的LocalDate类表示不带时区信息的日期,而Date类是可变的,用于表示带有时区的日期和时间。
让我们通过一个示例来了解问题陈述。
示例场景
Input: localdate = 2019-04-19; Output: date = Fri Apr 19 00:00:00 IST 2019;
通过将LocalDate转换为Instant
在这种方法中,我们首先使用toInstant()方法将LocalDate转换为Instant,然后,我们使用Date.from()方法将Instant转换为Date。
示例
以下Java程序演示了如何将LocalDate转换为Date。
import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; public class Demo { public static void main(String[] args) { LocalDate date = LocalDate.now(); System.out.println("LocalDate = " + date); Instant i = date.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant(); System.out.println("java.util.Date = " + java.util.Date.from(i)); } }
执行此代码后,将产生以下结果:
LocalDate = 2019-04-19 java.util.Date = Fri Apr 19 00:00:00 IST 2019
通过将LocalDate转换为Calendar
在这里,我们首先使用set()方法将LocalDate转换为Calendar,然后我们使用getTime()方法将Calendar转换为Date以获得最终结果。
示例
让我们看看实际演示:
import java.time.LocalDate; import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class LocalDateToDateUsingCalendar { public static void main(String[] args) { LocalDate locDate = LocalDate.now(); System.out.println("LocalDate = " + locDate); Calendar calendar = new GregorianCalendar(); calendar.set(locDate.getYear(), locDate.getMonthValue() - 1, locDate.getDayOfMonth()); Date date = calendar.getTime(); System.out.println("java.util.Date = " + date); } }
运行此代码后,您将获得以下输出:
LocalDate = 2024-09-02 java.util.Date = Mon Sep 02 08:24:09 GMT 2024
广告