import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.TimeZone;
/**
* LocalDate
* LocalTime
* LocalDateTime
* ZonedDateTime
*/
public class ZonedDateTimeEx {
public static void main(String[] args) {
// LocalDate : ๋ ์ง๋ฅผ ๋ค๋ฃจ๋ ํด๋์ค
System.out.println("[LocalDate]");
LocalDate nowDate = LocalDate.now();
System.out.println("ํ์ฌ ๋ ์ง : " + nowDate);
LocalDate endDate = LocalDate.of(2025, 2, 10);
System.out.println("์ข
๋ฃ ๋ ์ง : " + endDate);
// LocalTime : ์๊ฐ์ ๋ค๋ฃจ๋ ํด๋์ค
System.out.println("[LocalTime]");
LocalTime nowTime = LocalTime.now();
System.out.println("ํ์ฌ ์๊ฐ : " + nowTime);
LocalTime endTime = LocalTime.of(18, 20, 0);
System.out.println("์ข
๋ฃ ์๊ฐ : " + endTime);
// LocalDateTime : ๋ ์ง/์๊ฐ์ ๋ค๋ฃจ๋ ํด๋์ค
System.out.println("[LocalDateTime]");
LocalDateTime nowDateTime = LocalDateTime.now();
System.out.println("ํ์ฌ ๋ ์ง/์๊ฐ : " + nowDateTime);
LocalDateTime endDateTime = LocalDateTime.of(endDate, endTime);
// LocalDateTime.of(2025,2,10,18,20,0);
System.out.println("์ข
๋ฃ ๋ ์ง/์๊ฐ : " + endDateTime);
// ZonedDateTime
// : ํ์์กด์ ํฌํจํ์ฌ ๋ ์ง/์๊ฐ์ ๋ค๋ฃจ๋ ํด๋์ค
// * ํ์์กด(TimeZone) : ์ ์ธ๊ณ ํน์ ์ง์ญ์ด ์ฌ์ฉํ๋ ํ์ค ์๊ฐ
// * ํ์ ์ธ๊ณ์์ ํ์์กด
// UTC : ํ์ ์ธ๊ณ์ - ๊ตญ์ ํ์ค์
// ์์ธ : Asia/Seoul
// ๋ด์ : America/New_York
// ์ผ๋ณธ : Japan
// ๋ก๋ง : Europe/Rome
System.out.println("[ZonedDateTime]");
ZonedDateTime utcDateTime = ZonedDateTime.now( ZoneId.of("UTC") );
System.out.println("ํ์ ์ธ๊ณ์ : " + utcDateTime);
ZonedDateTime seoulDateTime = ZonedDateTime.now( ZoneId.of("Asia/Seoul") );
System.out.println("์์ธ ํ์ค์ : " + seoulDateTime );
ZonedDateTime newYorkDateTime = ZonedDateTime.now( ZoneId.of("America/New_York") );
System.out.println("๋ด์ ํ์ค์: " + newYorkDateTime );
ZonedDateTime japanDateTime = ZonedDateTime.now( ZoneId.of("Japan") );
System.out.println("์ผ๋ณธ ํ์ค์: " + japanDateTime );
ZonedDateTime romeDateTime = ZonedDateTime.now( ZoneId.of("Europe/Rome") );
System.out.println("๋ก๋ง ํ์ค์: " + romeDateTime );
// ์ค๋
?
// 1๋
: 365.25์ผ์ด๋ผ์, 0.25x4=1์ผ์ ๋งค 4๋
๋ง๋ค ์ถ๊ฐํด์ ์ฌ์ฉ
LocalDate ld = LocalDate.now();
// LocalDate.isLeapYear() : ์ค๋
์ด๋ฉด true, ์๋๋ฉด false ๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
if( ld.isLeapYear() ) {
System.out.println("์ฌํด๋ ์ค๋
: 2์ 29์ผ ๊น์ง");
}
else {
System.out.println("์ฌํด๋ ํ๋
: 2์ 28์ผ ๊น์ง");
}
// ์ฌ์ฉ๊ฐ๋ฅํ ํ์์กด ์์ด๋
String[] timeZoneId = TimeZone.getAvailableIDs();
for (String zoneId : timeZoneId) {
System.out.println(zoneId);
}
}
}
Java
๋ณต์ฌ