Java8 이전---------------
▶Date 클래스
-현시점 운영체제의 시간(로컬)을 밀리세컨드 단위로 얻을 때 사용한다.
-객체 간 날짜 정보를 주고받을 때 주로 사용한다.
-toString()을 이용하면 영문으로 된 날짜 정보 문자열을 리턴 받을 수 있다.
-특정 포맷으로 날짜 정보를 얻고 싶을 때 SimpleDateFormat 클래스를 이용한다.
-많은 생성자와 메소드들이 Deprecated 되었다. 단순 특정 시점의 시간을 저장하는 용도로만 사용하게 되었다.
-Format클래스의 공통적인 사용법
1) 생성자에 문자열 파라미터(원하는 포맷)로 제공하면서 포맷객체 생성
2) format()메소드로 포맷이 적용된 문자열을 반환받음
*MessageFormat은 "x는" + x + "입니다."; 같은 형태의 동적인 문자열을 더 깔끔하게 만들 수 있도록 도와주는 Format클래스.
▶Calendar 클래스
-달력을 기반으로 년, 월, 일, 요일, 오전/오후, 시, 분, 초 의 날짜 데이터를 다루기 위하여 사용한다.
-타임존(TimeZone)을 구현한 달력 구상 클래스를 얻는 데 사용하는 추상클래스이다.
-정적 메소드 getInstance()를 이용하여 구상 클래스의 객체를 얻는다. (Factory Method 패턴으로 보인다.)
-getInstance() 메서드 -> 운영체제의 TimeZone을 따르는 캘린더 구상 객체 반환
-getInstance( timeZone ) -> TimeZone인스턴스를 파라미터로 주입하여 원하는 TimeZone에 해당하는 캘린더 구상 객체 반환
-get() 메서드로 연도, 월, 일, 요일, 오전/오후, 시, 분, 초를 얻을 수 있다. (int반환)
▶TimeZone 클래스
-타임존(TimeZone)에 대한 정보를 얻을 때 사용한다.
-특정 타임존에 해당하는 Calendar나 ZonedDateTime을 얻을 때 사용한다.
-UTC(Universal Time Coordinated,세계협정시) 를 기준으로 시간대(TimeZone)를 나타낸다. UTC+9는 한국시간대.
-존오프셋(ZoneOffset) : UTC와의 시간 차이.
-존아이디(ZoneID) : "Asia/Seoul", 처럼 특정 타임존을 칭하는 표기 문자열.
-존아이디의 목록을 보는 방법은 TimeZone.getAvailableIDs() 로 String []을 반환받아 확인할 수 있다.
-특정 타임존의 Calendar 객체를 얻을 때는 TimeZone 타입 객체를 파라미터로 이용한다.
-특정 타임존의 ZonedDateTime 객체를 얻을 때는 ZoneId 타입 객체를 파라미터로 이용한다.
Java8 이후---------------
java.time 패키지를 추가하여 날짜 및 시간을 조작하거나 비교하는 기능을 강화
▶LocalDate 클래스
-현 시점 운영체제의 시간(로컬) 날짜 정보를 저장할 때 사용한다. 시간 정보 없이 날짜만 저장한다.
-now() 메서드로 현재 날짜를 저장한다.
-of() 메서드로 원하는 타깃 날짜를 저장한다.
▶LocalTime 클래스
-현 시점 운영체제의 시간(로컬) 시간 정보를 저장할 때 사용한다. 날짜 정보 없이 시간만 저장한다.
-now() 메서드로 현재 시간을 저장한다.
-of() 메서드로 원하는 타깃 시간을 저장한다.
▶LocalDateTime 클래스
-현시점 운영체제의 시간(로컬) 날짜와 시간 정보를 저장할 때 사용한다.
-now() 메서드로 현재 날짜와 시간을 저장한다.
-of() 메서드로 원하는 타깃 날짜와 시간을 저장한다.
▶ZonedDateTime 클래스
-특정 타임존(TimeZone)의 날짜와 시간 정보를 저장할 때 사용한다.
-now( zoneId )메소드로 타임존 기준 현재 날짜와 시간을 저장한다.
-of() 메서드로 원하는 타깃날짜와 시간을 저장한다.
▶Instant 클래스
-특정 시점의 타임스탬프(Time Stamp)로 사용한다.
-특정한 두 시점의 시간적 우선순위를 따질 때 사용한다.
-날짜 및 시간 정보를 얻거나 조작하는 데 사용하지 않는다.
-Date클래스와 유사하지만 현시점 UTC 기준의 타임스탬프를 얻는다는 점이 로컬 기준의 시간을 얻는 Date클래스와의 차이점이다.
'개발 > JAVA' 카테고리의 다른 글
[Java] 자바로 메모장 실행하기 with ProcessBuilder (0) | 2023.06.13 |
---|---|
[Java] 텍스트 파일 읽기, Reader, FileReader, File, BufferedReader (0) | 2023.06.09 |
[Java] int[] -> Integer[] -> ArrayList<Integer> -> int[] (0) | 2023.06.08 |
[Java] 자바 상식2 (0) | 2023.05.17 |
[Java] 자바 상식 (0) | 2023.05.16 |