728x90
반응형
프로그래머스 자바 중급 강의를 학습 목적으로 정리하여 포스팅합니다.
1. Date
날짜와 시간을 구하기 위한 클래스
지역화에 대한 부분이 고려되지 않았다.
대부분의 생성자와 메소드가 Deprecated 되어 있다.
- 지역화란, 지역에 따라서 시간, 통화(원, 달러, 엔 등) 언어 등에 대하여 고려하는 프로그래밍을 의미한다.
Date date = new Date();
System.out.println(date.toString());
// Sun Jan 10 10:34:52 KST 2023
SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println(ft.format(date));
// 2023.01.10 at 10:34:52 오전 KST
// 현재 시간을 Long값으로 구하는 방법
// 방법1
System.out.println(date.getTime()); // 1452389759575
// 방법2
long today = System.currentTimeMillis();
System.out.println(today); // 1452389759599
// 코드 사이에 걸린 시간
System.out.println(today - date.getTime()); // 25
기본 생성자로 Date 클래스를 만들게 되면 현재 시간과 날짜 정보를 Date 인스턴스가 가지게 된다.
toString() 메소드를 이용하여 현재 시간을 문자열로 구한다.
yyyy는 년, MM은 월, dd는 일, hh는 시간, mm은 분, ss는 초, a는 오전/오후를 의미
zzz는 TimeZone을 뜻한다. 한국의 경우 한국표준시 KST가 TimeZone에 해당하는 값이다.
2. Calendar
Date의 단점을 해결하는 클래스
Calendar 클래스 생성 방법
- Calendar 클래스는 추상클래스이다.
- Carlendar 클래스 인스턴스 생성을 위해서는 Calendar가 가지고 있는 클래스 메소드인 getInstance()를 사용해야 한다.
- getInstance() 메소드를 호출하면 내부적으로 java.util.GregorianCalendar 인스턴스를 만들어서 리턴한다.
- GregorianCalendar는 Calendar의 자식 클래스이다.
Calendar cal = Calendar.getInstance();
Calendar 클래스를 이용해서 현재 날짜와 시간에 대한 정보를 알아내는 방법
- Calendar는 현재 날짜와 시간에 대한 정보를 갖고 있다.
- Calendar가 가지고 있는 get 메소드에 Calendar의 상수를 어떤 것을 넣어주느냐에 따라서 다른 값이 나온다.
int yyyy = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 월은 0부터 시작합니다.
int date = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
Calendar 클래스를 이용해서 원하는 날짜나 시간에 대한 정보를 알아내는 방법
- Calendar가 가지고 있는 add 메소드를 이용하면 다음 날짜나 이전 날짜를 구할 수 있다.
- 현재에 시간을 더하거나 뺄 수 있다.
cal.add(Calendar.HOUR, 5);
3. java.time 패키지
Java에서 제공하는 Date, Time API는 부족한 기능 지원을 포함한 여러 문제점을 가지고 있다. JDK 코어에서 이런 문제점들을 해결하고 더 좋고 직관적인 API를 제공하기 위해 새롭게 재디자인한 Date, Time API를 Java SE 8부터 제공하고 있다.
- 새로운 API의 핵심 클래스는 object를 생성하기 위해 다양한 factory 메소드를 사용한다.
- object 자기 자신의 특정 요소를 가지고 object를 생성할 경우 of 메소드를 호출하면 되고, 다른 타입으로 변경할 경우 from 메소드를 호출하면 된다.
LocalDateTime 클래스를 이용해서 현재 시간 time 객체 만드는 방법
- now는 현재 시간을 구한다.
LocalDateTime timePoint = LocalDateTime.now(); // 현재의 날짜와 시간
원하는 시간으로 time 객체 생성하는 방법
// LocalDate객체(values)
LocalDate ld1 = LocalDate.of(2012, Month.DECEMBER, 12); // 2012-12-12
// LocalTime객체
LocalTime lt1 = LocalTime.of(17, 18); // 17:18
// LocalTime객체(string)
LocalTime lt2 = LocalTime.parse("10:15:30"); // 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();
// 달을 숫자로 출력한다 1월도 1부터 시작하는 것을 알 수 있습니다.
System.out.println(month.getValue() + "/" + day + " " + hour + ":" + minute + ":" + second);
728x90
반응형
'JAVA > [프로그래머스] 자바 강의' 카테고리의 다른 글
[프로그래머스] 자바 중급 강의 part6. 어노테이션 (0) | 2023.02.08 |
---|---|
[프로그래머스] 자바 중급 강의 part5. IO (0) | 2023.02.07 |
[프로그래머스] 자바 중급 강의 part3. java.util 패키지 (1) | 2023.02.01 |
[프로그래머스] 자바 중급 강의 part2. java.lang 패키지 (0) | 2023.01.30 |
[프로그래머스] 자바 중급 강의 part1. Object 클래스 (0) | 2023.01.29 |