java.util.Date 클래스
- 날짜 및 시각 정보를 관리하는 클래스
- 대부분의 메서드가 deprecated 로 처리되어 있으므로 현재 사용되지 않지만,
기존에 제공되는 API 들의 대다수가 Date 타입을 사용하고 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
Date d1 = new Date(); // 인스턴스 생성 해서 사용
System.out.println(d1); // toString() 생략되어 있음 (=오버라이딩)
// 현재 날짜 및 시각 정보가 Wed Jun 24 16:03:53 KST 2020 형태로 출력됨
// => EEE MMM dd HH:mm:ss zzz yyyy 패턴을 사용하여 toString() 메서드 오버라이딩됨
Date d2 = new Date(1500000000000L);
long gap = d1.getTime() - d2.getTime();
System.out.println("두 객체의 차 : " + gap);
두 객체의 차 : 93013182978 // 밀리초 단위로 나옴
// 밀리초 단위를 일 단위로 변경
// 밀리초 - > 초/1000 -> 분/60 -> 시/60 -> 일/24
System.out.println("두 객체의 차 : " + (gap/1000/60/60/24));
두 객체의 차 : 1076일
// 현재 deprecated 처리된 생성자
Date d3 = new Date(2002, 5,1, 20, 0, 0); // 2002년 5월 1일 20시 0분 0초로 설정
System.out.println(d3.getYear() + "/" + d3.getMonth() + "/"+ d3.getDate());
|
cs |
java.util.Calendar 클래스
날짜 및 시각 정보를 관리하는 클래스
객체 생성이 불가능한 추상클래스
=>Calendar.getInstace() 메서드로 호출하여 기존의 인스턴스를 리턴받아 사용 =싱글톤디자인패턴
get() 메서드로 시각 및 날짜 정보를 가져오고, set() 메서드로 설정
=> 주의! 파라미터에 날짜 및 시각 항목을 int형으로 지정해야하는데
이 때, Calendar.XXX 형태의 상수를 사용하여 정보의 종류를 지정
get() 또는 set() 메서드 사용 시 월(MONTH)에 대한 정보에 접근할때
0 ~ 11월 까지로 사용되므로 주의! ( 가져올 때 +1, 설정할 때 -1 값 사용)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
Calendar cal = Calendar.getInstance(); // Singletone Design Pattern
int year = cal.get(Calendar.YEAR);
int mon = cal.get(calendar.MONTH)+1; // 월 정보 가져와서 +1 필수!
int day = cal.get(calendar.DAY_OF_MONTH) // DAY_OF_WEEK = 요일
// DAY_OF_WEEK 에 요일에 따라 숫자값이 저장되어 있음
String strDayOfWeek = "";
switch (dayOfWeek) {
case Calendar.MONDAY :
strDayOfWeek = "월요일";
break;
case Calendar.TUESDAY :
strDayOfWeek = "화요일";
break;
case Calendar.WEDNESDAY :
strDayOfWeek = "수요일";
break;
case Calendar.THURSDAY:
strDayOfWeek = "목요일";
break;
case Calendar.SUNDAY :
strDayOfWeek = "일요일";
break;
case Calendar.FRIDAY :
strDayOfWeek = "금요일";
break;
case Calendar.SATURDAY :
strDayOfWeek = "토요일";
break;
}
// int hour = cal.get(Calendar.HOUR); // 12시간 제
int hour = cal.get(Calendar.HOUR_OF_DAY); // 24시간 제
int min = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
// 오전 오후 정보
int ampm = cal.get(Calendar.AM_PM);
String strAmpm = (ampm ==Calendar.AM) ? "오전" : "오후";
System.out.println(strAmpm + " " +hour + "시 " + min + "분 " + sec + "초");
|
cs |
java.time 패키지
날짜 및 시각 관련 정보를 제공하는 클래스들의 모음
LocalDate 클래스 : 날짜를 처리하는 클래스
LocalTime 클래스 : 시각을 처리하는 클래스
LocalDateTime 클래스 : 날짜 및 시각을 처리하는 클래스
=> 대부분의 메서드가 동일함
객체에 현재 정보를 가져오는 메서드 : now()
객체에 특정 정보를 설정하는 메서드 : of()
연산을 위해 제공하는 메서드 : plusXXXs(), minusXXXs(), withXXX() 메서드 사용
=> XXX항목의 이름(ex. Hour, Month 등)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
LocalDate date =LocalDate.now();
System.out.println("오늘 날짜 : " + date); // toString() 오버라이딩
LocalDate date2 = LocalDate.of(2000,1,1);
System.out.println("설정된 날짜 : " + date2);
LocalTime time = LocalTime.now();
System.out.println("현재 시각 : " + time);
LocalTime time2 = LocalTime.of(12, 1, 5);
System.out.println("설정된 시각 : " + time2);
LocalDateTime now = LocalDateTime.now();
System.out.println("지금 : " + now);
// 객체 내의 각 정보 가져오기 = getXXX()
int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
DayOfWeek dayOfWeek = date.getDayOfWeek(); // DayOfWeek enum 으로 지정
System.out.println(year + "년 " + month + "월 " + day + "일");
int hour = time.getHour();
int min = time.getMinute();
int sec = time.getSecond();
System.out.println(hour + "시 " + min + "분 " + sec + "초");
System.out.println("올해는 윤년입니까? " + date.isLeapYear());
System.out.println("이번달은 몇 일까지 있음? " + date.lengthOfMonth());
System.out.println("올해는 몇 일 까지 있음? " + date.lengthOfYear());
|
cs |
'Language > Java' 카테고리의 다른 글
정규표현식 (0) | 2020.07.06 |
---|---|
StringTokenizer~format (0) | 2020.07.06 |
제네릭(Generic) (0) | 2020.06.25 |
Stack(스택) vs Queue(큐) (0) | 2020.06.25 |
Map 인터페이스 - Collection 프레임워크 (0) | 2020.06.25 |