Java程序将LocalDate转换为java.util.Date


假设日期以LocalDate格式给出,我们的任务是编写一个Java程序将其转换为java.util.Date。对于此问题,我们需要通过将其与时间(例如午夜)或时区组合来向LocalDate添加时间信息。

LocalDatejava.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

更新于: 2024年9月11日

1K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告