개발/JAVA

[Java] 시간과 관련된 자바 클래스

mabb 2023. 6. 12. 14:07
반응형

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.base (Java SE 20 & JDK 20)

module java.base Defines the foundational APIs of the Java SE Platform. Providers: The JDK implementation of this module provides an implementation of the jrt file system provider to enumerate and read the class and resource files in a run-time image. The

docs.oracle.com

 

[개발관련] 컴퓨터의 시간_ GMT,UTC

개인 공부 내용이므로 잘못된 부분이 있을 수 있습니다. 그럴 경우 댓글로 알려주시면 감사하겠습니다. ==================================================== 1.시간의 종류 :시간은 천문학을 기반으로 한 시

mabb.tistory.com

 

반응형