Table of Contents
ToggleJava Convert LocalDateTime to LocalDate
將 LocalDateTime 轉換為 LocalDate 實例的方法,簡單來說過程如: LocalDateTime -> ZonedDateTime -> java.util.LocalDate 這些步驟等, Java LocalDateTime LocalDate 任務是將該 LocalDateTime 轉換為 LocalDate ,本篇增加了範例,並透過單元測試來驗證產出結果。
檔案目錄
./
+- src
+- test
| +- org
| +- ruoxue
| +- java_147
| +- conversion
| +- datetime
| +- LocalDateTimeToLocalDateTest.java
單元測試
Java LocalDateTime to LocalDate 提供 LocalDateTime 轉換成 LocalDate 等操作。
toLocalDate
Java LocalDateTime to LocalDate 使用 toLocalDate 轉換成 LocalDate 。
@Test
public void toLocalDate() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
LocalDate result = localDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
result = localDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
}
2023-04-04
2023-04-04
toLocalTime
Java LocalDateTime to LocalDate 使用 toLocalTime 轉換成 LocalTime 。
@Test
public void toLocalTime() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
LocalTime result = localDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
result = localDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
}
05:04:03
05:04:03
atZoneToLocalDate
Java LocalDateTime to LocalDate 使用 ZonedDateTime 轉換成 LocalDate 。
@Test
public void atZoneToLocalDate() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
ZoneId zone = ZoneId.of("Asia/Sakhalin");
ZonedDateTime zonedDateTime = localDateTime.atZone(zone);
System.out.println(zonedDateTime);
LocalDate result = zonedDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
zonedDateTime = localDateTime.atZone(zone);
result = zonedDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
}
2023-04-04T05:04:03+11:00[Asia/Sakhalin]
2023-04-04
2023-04-04
atZoneToLocalTime
Convert LocalDateTime to LocalDate in Java 使用 ZonedDateTime 轉換成 LocalTime 。
@Test
public void atZoneToLocalTime() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
ZoneId zone = ZoneId.of("Asia/Sakhalin");
ZonedDateTime zonedDateTime = localDateTime.atZone(zone);
System.out.println(zonedDateTime);
LocalTime result = zonedDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
zonedDateTime = localDateTime.atZone(zone);
result = zonedDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
}
2023-04-04T05:04:03+11:00[Asia/Sakhalin]
05:04:03
05:04:03
LocalDateTimeToLocalDateTest.java
Convert LocalDateTime to LocalDate in Java 新增單元測試,驗證是否符合預期。
package org.ruoxue.java_147.conversion.datetime;
import static org.junit.Assert.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import org.junit.Test;
public class LocalDateTimeToLocalDateTest {
@Test
public void toLocalDate() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
LocalDate result = localDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
result = localDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
}
@Test
public void toLocalTime() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
LocalTime result = localDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
result = localDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
}
@Test
public void atZoneToLocalDate() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
ZoneId zone = ZoneId.of("Asia/Sakhalin");
ZonedDateTime zonedDateTime = localDateTime.atZone(zone);
System.out.println(zonedDateTime);
LocalDate result = zonedDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
zonedDateTime = localDateTime.atZone(zone);
result = zonedDateTime.toLocalDate();
System.out.println(result);
assertEquals("2023-04-04", result.toString());
}
@Test
public void atZoneToLocalTime() {
LocalDateTime localDateTime = LocalDateTime.of(2023, 4, 4, 5, 4, 3);
ZoneId zone = ZoneId.of("Asia/Sakhalin");
ZonedDateTime zonedDateTime = localDateTime.atZone(zone);
System.out.println(zonedDateTime);
LocalTime result = zonedDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
localDateTime = LocalDateTime.parse("2023-04-04T05:04:03");
zonedDateTime = localDateTime.atZone(zone);
result = zonedDateTime.toLocalTime();
System.out.println(result);
assertEquals("05:04:03", result.toString());
}
}
心得分享
LocalDateTime to LocalDate in Java 將 LocalDateTime 轉換為 LocalDate,在日期後附加時間和時區信息,轉換步驟如下: 1. 取得時區,以便可以將時區資訊附加到日期,2. 調用 toLocalDate 以便可以取得日期, Convert LocalDateTime to LocalDate in Java 提供將 LocalDateTime 實例轉換為 LocalDate 實例的多種方法。