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 |