Java Convert LocalDateTime to LocalDate - Java 147

Java Convert LocalDateTime to LocalDate – Java 147

Java 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 實例的多種方法。

發佈留言