Java 날짜와 시간 얻기 

LocalDate, LocalTime 

LocalDateTime, ZonedDateTime





결과

결과






코드

public static void main(String[] args) {
		// 1. 날짜만 저장
		LocalDate ld = LocalDate.now();
		LocalDate ld2 = LocalDate.of(2022, 2, 15);
		System.out.println("오늘 날짜 : " + ld);
		System.out.println("만든 날짜 : " + ld2);
		
		// 2. 시간만 저장
		LocalTime lt = LocalTime.now();
		LocalTime lt2 = LocalTime.of(14, 29, 30);
		System.out.println("지금 시간 : " + lt);
		System.out.println("만든 시간 : " + lt2);
		
		//3. 1번+2번 = 날짜+시간
		LocalDateTime ldt = LocalDateTime.now();
		System.out.println("오늘 날짜와 현재 시간 : " + ldt);
		
		// 4. TimeZone(타임존)의 날짜와 시간을 저장하며 타임존에 대한 정보까지
		ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("Asia/Seoul"));
		ZonedDateTime zdt2 = ZonedDateTime.now(ZoneId.of("America/Los_Angeles"));
		System.out.println("서울 타임존 : " + zdt);
		System.out.println("LA 타임존 : " + zdt2);
	}





자바 8부터 추가되었고 기존의 사용하던 Date와 Calendar의 불편함을 보완하기 위하여 추가되었다.



LocalDate : 날짜만 저장 가능

- now() 메소드를 사용하면 오늘 날짜의 정보를 가져온다.


- LocalDate.of()를 사용하여서 직접 날짜를 지정해 줄 수 있다.


- 메소드

메소드

설명

getYear()

년도

getMonthValue()

getDayOfMonth()

getDayOfWeek()

요일 (영어로 리턴)

isLeapYear()

윤년 검사

minusMonths(long n)

월 빼기

plusWeeks(long n)

주 더하기

withDayOfMonth(int n)

일 변경 

->  plus, minus 로 년, 월, 일, 주 등을 더해고 뺄 수 있다.

-> with를 사용하면 지정한 값으로 년, 일, 월을 변경할 수 있다.






LocalTime : 시간만 저장 가능

- LocalDate와 유사하다. (날짜 대신 시간)


- LocalDate와 마찬가지로 now() 사용하여서 현재 시간을 가져올 수도 있으며 of() 메소드를 사용하여서 직접 시간을 지정해 줄 수 있다.


- 메소드

메소드

설명

getHour()

시간

getMinute()

getSecond()

plusMinutes(long n)

분 더하기

minusHours(long n)

시 빼기

withMinute(int n)

분 변경 

-> plus, minus로 시간, 분, 초를 더하거나 빼줄 수 있다.

-> with를 사용하여서 값을 변경할 수도 있다.





LocalDateTime : 날짜와 시간을 저장

- 이름에서 짐작할 수 있듯이 LocalDate + LocalTime 이다.


- 날짜와 시간 둘다 저장할 수 있으며 now()나 of()로 값을 줄 수 있다.


- 결과를 보면 맨 뒤 '.'하고 쓸때없이 긴 숫자가 이어져 있다. 이는 나노초를 나타내며 이를 표시않기 위해서는 오버라이딩하여 재정의해야한다.





ZonedDateTime : 타임존과 날짜 시간 저장

- Timezone(타임존)의 따른 날짜와 시간을 저장한다.


- 위 코드에서는 Seoul이나 LA를 예로 들었다.


- Zone ID의 관하여서는 

https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html

해당 페이지를 참고하면 된다.








'JAVA > 심화' 카테고리의 다른 글

Java 제네릭(Generic) 타입  (0) 2020.04.01
Java 시간 차 구하기 ChronoUnit  (0) 2020.03.28
Java Pattern 문자열 검증하기  (0) 2020.03.27
Java 배열 Arrays 클래스  (0) 2020.03.26
Java DecimalFormat 천단위마다 쉼표 입력  (0) 2020.03.26

+ Recent posts