Ezcho

[java] Date, Calendar클래스, Time 패키지 본문

Java

[java] Date, Calendar클래스, Time 패키지

Ezcho 2022. 11. 9. 19:03

Java내에서 날짜와 시간을 나타내기 위해서는 Date와 Calendar클래스를 사용한다.


Date 클래스


-1.0 부분부터 만들어짐
-Date 는 지역화에 대한 고려가 되어있지 않음(여러 국가의 시차가 다른점)
-생성자: Deprecated
-메서드: 대부분 Deprecated


Deprecated: 앞으로 지원하지 않을 수 있거나, 문제가 될 수 있음(사용하지 마세요)

-사용: java.utill package

Date date = new Date(); //현재 시간과 날자 instance 를 Date객체가 가짐
date.toString; //으로 출력

SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss a zzz")

//MM은 대문자로(min 이랑 Month 랑 헷갈리지 않게)
//a 는 오전 오후의 표시

System.out.println(ft.format(date)); //출력
System.out.println(date.getTime()); //long 값으로 현재시간 출력

Long today = System.currentTimeMillis();
System.out.println(today); //long값으로 시스템 시간 출력

System.out.println(today - date.getTime()); //걸린 시간을 출력가능

 



Calendar 클래스


-Date보다 조금 더 나중에 만들어짐 JDK 1.1
-상수값으로 얻어올 수 있음
-추상 클래스(미완성된 메서드를 가지고 있음, new로 인스턴스 생성 불가)
-Gregorian Calendar라는 Calendar의 자식 클래스를 리턴한다.
-새로운 달력 형식이 나올 수 있기때문에 Gregorian Calendar클래스를 사용하는것이다.

 

-사용: java.utill package

Calendar cal = Calendar.getinstance();
System.out.println(cal.get(Calendar.Year)); //연도의 정보
System.out.println(cal.get(Calendar.XXX));

/*XXX에 대표적으로 많이 사용되는것들

MOHTH //월에 대한 정보(0~11 까지 1~12월 표현)
YEAR //현재 연도에 대한 정보
DATE //현재 일에 대한 정보
HOUR //시간을 12시간 단위로 표현
HOUR_OF_DAY //시간을 24시간 단위로 표현
MINUTE //현재 분을 출력
*/

cal.add //시간을 더하는 메서드

cal.add(Calendar.HOUR, 5); //출력방법은 동일함(5시간 이후로)

 



Time 패키지


-Utill.date클래스는 직관적이지 못하다는 단점을 갖고있음
-Joad-Time 에서 직관적인 디자인을 한 Date, TimeApi 를 제공
-핵심 클래스는 오브젝트를 생성하기 위해 다양한 factory 메서드를 사용한다.

-오브젝트 자기 자신의 특정 요소를 가지고 오브젝트를 생성할 경우 of 메서드를 호출하면 된다.

-다른 타입으로 변경할 경우에는 from 메서드를 호출하면 된다.

 

사용법

LocalDateTime timePoint = LocalDateTime.now();	
//현재의 날짜와 시간을 가진 객체 생성

System.out.println(timePoint);

LocalDate ld1 = LocalDate.of(2012, Month.DECEMBER, dayOfMonth);
System.out.println(ld1);		//2012-12-12


LocalTime lt1 = LocalTime.of(17, 18);	//시간만 가지는 객체 생성
LocalTime lt2 = LocalTime.parse("10:15:30");	//객체 생성

//현재와 날짜와 시간정보를 getter메소드를 이용하여 구하는 방법

LocalDate theDate = timePoint.toLocalDate();
Month month = timePoint.getMonth();
int day = timePoint.getDayOfMonth();
int hour = timePoint.getHour();
int minute = timePoint.getMinute();
int second = timePoint.getSecond();
// 달을 숫자로 출력
System.out.println(month.getValue() + "/" + day + "  " + hour + ":" + minute + ":" + second);



'Java' 카테고리의 다른 글

[java] java IO - Byte단위 입출력  (0) 2022.11.16
[java] 어노테이션  (0) 2022.11.09
[java] java.util패키지  (0) 2022.11.02
[java] Math Class  (0) 2022.10.12
[java] String과 StringBuffer  (0) 2022.10.12
Comments