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+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.