반응형
개발을 하다보면 자주 서버의 시간을 확인하여 기준일로 두어 조회하거나 시간을 출력해주거나 다양한 용도로 사용하는데 이때마다 JAVA에서 날짜를 구하는 방식은 Calendar.getInstance(); 메소드를 활용하여 날짜를 파싱하고 변경하고 출력하는 형태였다. (1.8미만 버전)
날짜를 변경할때 사용하는 cal.add(); 메소드는 상수를 사용하여 매번 찾게 만들고, 번거롭고 힘든 작업이었다.
1.8이상의 자바를 사용중이라면 LocalDate, LocalTime, LocalDateTime등을 사용하여 훨씬 쉽게 작성이 가능하다.
소스를 통해 차이점을 확인해보자.
Calendar - 오늘 날짜 구하기
Calendar cal = Calendar.getInstance();
String format = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(format);
String date = sdf.format(cal.getTime());
System.out.println(date);
LocalDate - 오늘 날짜 구하기
LocalDate now = LocalDate.now();
System.out.println(now);
동일한 데이터이지만 훨씬 간단하게 날짜를 호출하는걸 확인 할 수 있다.
그럼 LocalDate 클래스는 어떤식으로 형변환을 할 수 있을까?
- format 메소드를 활용하면 된다.
LocalDate now = LocalDate.now();
String format = now.format(DateTimeFormatter.ofPattern("yyyy.MM.dd"));
System.out.println(now);
System.out.println(format);
LocalDate 클래스는 날짜 데이터, LocalTime 클래스는 시간, LocalDateTime 클래스는 시간 날짜 데이터를 가져올 수 있다.
서버의 현재 시간 가져오기, 제어하기
서버 날짜 및 시간 구하기
LocalDate ld = LocalDate.now(); // 날짜 구하기
System.out.println("LocalDate > " + ld);
LocalTime lt = LocalTime.now(); // 시간 구하기
System.out.println("LocalTime > " + lt);
LocalDateTime ldt = LocalDateTime.now(); //날짜 + 시간 구하기
System.out.println("LocalDateTime > " + ldt);
날짜를 추가, 감소하기 // 시간을 추가, 감소하기
LocalDate ld = LocalDate.now(); // 날짜 구하기
LocalDate nld = ld.plusDays(5);
System.out.println("LocalDate > " + ld); //현재 날짜
System.out.println("plusDate > " + nld); //5일 뒤
LocalTime lt = LocalTime.now(); // 시간 구하기
LocalTime nlt = lt.minusHours(2); // 시간 빼기
System.out.println("LocalTime > " + lt); // 현재시간
System.out.println("minusHours > " + nld); //2시간 전 시간
LocalDateTime ldt = LocalDateTime.now(); //날짜 + 시간 구하기
LocalDateTime nldt = ldt.plusDays(3).plusHours(3); //3일 + 3시간 뒤
System.out.println("LocalDateTime > " + ldt); // 현재 날짜 + 시간
System.out.println("3day 3hours after > " + nldt); // 3일 + 3시간 뒤 출력
plus~(), minus~() 메소드를 통하여 제어가 가능하다.
LocalDate 날짜 관련에서 사용가능 메소드
LocalDate.plusYears(long); //년추가
LocalDate.plusMonths(long); //월추가
LocalDate.plusWeeks(long); //주추가
LocalDate.plusDays(long); //일추가
LocalDate.minusYears(long); //년감소
LocalDate.minusMonths(long); //월감소
LocalDate.minusWeeks(long); //주감소
LocalDate.minusDays(long); //일감소
LocalTime 시간 관련에서 사용가능 메소드
LocalTime.now().plusHours(long); //시간추가
LocalTime.now().plusMinutes(long); //분추가
LocalTime.now().plusSeconds(long); //초추가
LocalTime.now().plusNanos(long); //나노초추가
LocalTime.now().minusHours(long); //시간감소
LocalTime.now().minusMinutes(long); //분감소
LocalTime.now().minusSeconds(long); //초감소
LocalTime.now().minusNanos(long); //나노초감소
LocalDateTime에서는 모두 사용 가능하다.
반응형
'JAVA' 카테고리의 다른 글
JAVA - 오토박싱, 언박싱 (Autoboxing and Unboxing) (0) | 2020.02.07 |
---|---|
JAVA - 클래스의 메소드 참조, "::", List 출력, "System.out::println" (0) | 2020.01.14 |
JAVA - POI를 활용하여 자바에서 엑셀(.xlsx) 읽기 (0) | 2019.12.13 |
JAVA - CSV 파일 읽기(한글 읽기, 한글 깨짐 방지, CSV 인코딩 UTF-8 저장) (0) | 2019.12.11 |
Java - 오늘, 어제, 이번달, 올해, 지난해 등 날짜 구하기 (0) | 2019.11.29 |