Java Date, Calendar, SimpleDateFormat 시간 구하기
결과
결과
코드
public static void main(String[] args) {
Date date = new Date();
System.out.println("시간 확인 : " + date.toString());
SimpleDateFormat sf = new SimpleDateFormat("yy-MM-dd, hh:mm:ss, E요일, 올해D일째");
System.out.println("시간 확인(포맷팅) : " + sf.format(date) + "\n");
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR); // 년도
int month = cal.get(Calendar.MONTH) + 1; // 월 0~11
int day = cal.get(Calendar.DAY_OF_MONTH); // 일
int yoil = cal.get(Calendar.DAY_OF_WEEK); // 요일
int hour = cal.get(Calendar.HOUR_OF_DAY); // 시 0~23
int min = cal.get(Calendar.MINUTE); // 분
int sec = cal.get(Calendar.SECOND); // 초
String[] yo = {"일", "월", "화", "수", "목", "금", "토"};
// Calendar.SUNDAY : 1 ~ Calendar.SATURDAY : 7
System.out.println("Cal 얻은 값 : " + year + "년" + month + "월" + day + "일 " +
yo[yoil-1] + "요일 " + hour + "시" + min + "분" + sec + "초");
}
Date : 날짜 표현 클래스
- 생성자가 여러개 있지만 대부분 비권장(Deprecated) 되어 사용 않는다.
- Date()를 생성하면 컴퓨터의 현재 날짜를 읽어 Date 객체를 생성한다.
- toString() 메소드를 사용하면 날짜를 문자열로 얻을 수 있다.
- 문자열을 특정한 포맷으로 얻고자 한다면 SimpleDateFormat을 사용한다.
SimpleDateFormat : 날짜 포맷 클래스
- 특정 포맷 문자열로 Date 객체의 날짜와 시간을 얻고자할 때 사용한다.
- 문자열 포맷은 SimpleDateFormat 객체를 생성할 때 생성자에서 지정해주며 포맷 기호들을 사용하여서 작성한다.
문자 |
설명 |
문자 |
설명 |
y |
년도 |
M |
월 |
d | 일 | D | 올해 기준 일 |
H |
시(0~23) |
h |
시(1~12) |
k |
시(1~24) |
K |
시(0~11) |
m |
분 |
s |
초 |
E |
요일 |
a |
오전 / 오후 |
W |
이번달 몇 번째 주 |
w |
올해 몇 번째 주 |
Calendar : 이름처럼 달력을 표현하는 클래스
- 지역이나 나라마다 날짜를 계산하는 방법이 다르므로 Calendar는 인스턴스를 생성할 수 없도록 추상 클래스로되어 있다.
- Calendar cal = Calendar.getInstance(); 로 한다면 현재 OS의 설정된 시간을 갖는 객체를 얻을 수 있다.
- Calendar.MONTH 는 리턴값이 0~11로서 0부터 시작하므로 결과의 1을 더해주어야 원하는 값을 얻을 수 있다.
- Calendar.DAY_OF_WEEK는 요일을 얻을 수 있으며 리턴형은 int이다.
값을 확인해보면 Calendar.SUNDAY : 1 ~ Calendar.SATURDAY : 7 이다.
따라서 위 코드에서는 요일을 갖는 문자열 배열을 만들어 간단하게 표현하였다.
- Calendar.HOUR = 0~11 이며 Calendar.HOUR_OF_DAY = 0~23 이므로 HOUR을 사용하고자 한다면 따로 AM/PM을 표시해주어야 한다.
'JAVA > 심화' 카테고리의 다른 글
Java 배열 Arrays 클래스 (0) | 2020.03.26 |
---|---|
Java DecimalFormat 천단위마다 쉼표 입력 (0) | 2020.03.26 |
Java max, min, random - 랜덤 수 구하기 (0) | 2020.03.25 |
Java 반올림, 내림, 올림 - round, ceil, floor (0) | 2020.03.24 |
Java StringBuilder, StringBuffer (0) | 2020.03.24 |