Table of Contents
ToggleJava Convert LocalDate to Date
將 LocalDate 轉換為 Date,在日期後附加時間和時區信息,轉換步驟如下: 1. 取得時區,以便可以將時區資訊附加到日期,2. 調用 atStartOfDay() 以便可以將時間附加到日期, 3. 本地日期 + atStartOfDay() + 時區 + toInstant(), Java LocalDate Date 任務是將該 LocalDate 轉換為 Date ,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- datetime
| +- LocalDateToDateTest.java
單元測試
Java LocalDate to Date 提供 LocalDate 轉換成 Date 等操作。
toDate
Java LocalDate to Date 使用 atStartOfDay 轉換成 Date 。
@Test
public void toDate() {
ZoneId zone = ZoneId.of("Asia/Sakhalin");
LocalDate localDate = LocalDate.of(2023, 4, 4);
ZonedDateTime zonedDateTime = localDate.atStartOfDay(zone);
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
System.out.println(date);
assertEquals("Mon Apr 03 21:00:00 CST 2023", date.toString());
}
Mon Apr 03 21:00:00 CST 2023
toDateWithAtStartOfDay
Java LocalDate to Date 使用 atStartOfDay 轉換成 Date 。
@Test
public void toDateWithAtStartOfDay() {
ZoneId zone = ZoneId.of("Etc/GMT-11");
LocalDate localDate = LocalDate.of(2023, 4, 4);
ZonedDateTime zonedDateTime = localDate.atStartOfDay(zone);
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
System.out.println(date);
assertEquals("Mon Apr 03 21:00:00 CST 2023", date.toString());
}
Mon Apr 03 21:00:00 CST 2023
toSqlDate
Java LocalDate to Date 使用 valueOf 轉換成 sql.Date 。
@Test
public void toSqlDate() {
LocalDate localDate = LocalDate.of(2023, 4, 4);
java.sql.Date sqlDate = java.sql.Date.valueOf(localDate);
System.out.println(sqlDate);
assertEquals("2023-04-04", sqlDate.toString());
}
2023-04-04
LocalDateToDateTest.java
Convert LocalDate to Date in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.conversion.datetime;
import static org.junit.Assert.*;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
import org.junit.Test;
public class LocalDateToDate {
@Test
public void toDate() {
ZoneId zone = ZoneId.of("Asia/Sakhalin");
LocalDate localDate = LocalDate.of(2023, 4, 4);
ZonedDateTime zonedDateTime = localDate.atStartOfDay(zone);
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
System.out.println(date);
assertEquals("Mon Apr 03 21:00:00 CST 2023", date.toString());
}
@Test
public void toDateWithAtStartOfDay() {
ZoneId zone = ZoneId.of("Etc/GMT-11");
LocalDate localDate = LocalDate.of(2023, 4, 4);
ZonedDateTime zonedDateTime = localDate.atStartOfDay(zone);
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
System.out.println(date);
assertEquals("Mon Apr 03 21:00:00 CST 2023", date.toString());
}
@Test
public void toSqlDate() {
LocalDate localDate = LocalDate.of(2023, 4, 4);
java.sql.Date sqlDate = java.sql.Date.valueOf(localDate);
System.out.println(sqlDate);
assertEquals("2023-04-04", sqlDate.toString());
}
}
心得分享
LocalDate to Date in Java 將 LocalDate 轉換為 Date 實例的方法,簡單來說過程如: LocalDate -> ZonedDateTime -> Instant -> java.util.Date 這些步驟等, Convert LocalDate to Date in Java 提供將 LocalDate 實例轉換為 Date 實例的方法。