Date now = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyyyy-MM-dd HH:mm:ss");
//SimpleDateFormat 인스턴스가 생성된 시점으로부터 이전 80년 /이후 20년 이래로 날짜를 조정
// "yy-MM-dd" 패턴을 사용하면 24-02-03, yyy-MM-dd => 2024-02-03
// yyyy-MM-dd => 2024-02-03 ... yyyyyy-MM-dd => 002024-02-03 ...
System.out.println("현재시각 >" + now);
//Sat Feb 03 23:05:38 KST 2024
System.out.println("현재시각 >" + simpleDateFormat.format(now));
//현재시각 > 2024-02-03 23:05:38
String currentTime = String.format("%tF %tp %tT %tA %tZ", now, now, now, now, now); // %t는 time
System.out.println("현재시각 > " + currentTime);
//현재시각 > 2024-02-03 오후 23:10:01 토요일 KST
/*
<참고>
날짜 타입 format 설명
--------------------------------------------------
%tF 날짜를 yyyy-mm-dd 형식으로 포맷해주는 것
%tT 날짜의 시각을 HH:MM:SS 형식으로 포맷해주는 것
%tp 오전, 오후를 출력
%tA 요일명 출력
%tY 4자리 년도만 출력
%tB 월의 이름(January, February ...)출력
%tm 월의 01,02,03 ~~ 10,11,12 로 출력
%td 일수를 1~31 로 출력
%te %td와 동일함
%tk 시간을 0~23 으로 출력
%tl 시간을 1~12 으로 출력
%tM 분을 00~59 으로 출력
%tS 초를 00~59 으로 출력
%tZ 타임존을 출력(한국은 KST로 나옴).
*/
}
sdformat = new SimpleDateFormat("yyyyMMdd");
sdformat.setLenient(false);
// false 로 해주어야만 입력한 값을 날짜 타입으로 변경할때 날짜로 되지 못하는 값일 경우 오류가 발생한다.
// 날짜로 파싱될 때 허술하게 하지 말고 엄격하게 하라고 설정해주는 것이라고 생각하면 된다.
try {
// Date d = sdformat.parse("19980430");
Date d = sdformat.parse("19980431");
System.out.println(d);
// Thu Apr 30 00:00:00 GMT+09:00 1998
} catch (ParseException e) {
// e.printStackTrace();
System.out.println(">> 달력에 존재하지 않는 값입니다. <<");
}
date1.compareTo(date2);
/*
date1 날짜와 date2 날짜가 동일하면 0을 반환하고,
date1 날짜가 date2 날짜 보다 이전 날짜인 경우 0보다 작은 값을 반환하고, (<0)
반대로 date1 날짜가 date2 날짜 보다 이후 날짜인 경우 경우 0보다 큰 값을 반환한다. (>0)
*/
date1.before(date2);
/*
date1 날짜가 date2 날짜 보다 이전 날짜인 경우 true를 반환하고,
동일한 날짜이거나 이후 날짜인 경우 false를 반환한다.
*/
date1.after(date2);
/*
date1 날짜가 date2 날짜 보다 이후 날짜인 경우 true를 반환하고,
동일한 날짜이거나 이전 날짜인 경우 false를 반환한다.
*/
try {
String str_date1 = "19950704";
String str_date2 = "19980301";
Date date1 = sdformat.parse(str_date1);
Date date2 = sdformat.parse(str_date2);
// === 날짜 비교하기 === //
/*
>> Date 클래스에서 제공하는 compareTo() 메소드 <<
date1.compareTo(date2);
date1 날짜와 date2 날짜가 동일하면 0을 반환하고,
date1 날짜가 date2 날짜 보다 이전 날짜인 경우 0보다 작은 값을 반환하고,
반대로 date1 날짜가 date2 날짜 보다 이후 날짜인 경우 경우 0보다 큰 값을 반환한다.
*/
if(date1.compareTo(date2) < 0) {
System.out.println(str_date1 +" 이 " + str_date2 +" 보다 이전날짜 입니다.");
}
else if(date1.compareTo(date2) == 0) {
System.out.println(str_date1 +" 와 " + str_date2 +" 은 동일한 날짜 입니다.");
}
else {
System.out.println(str_date1 +" 이 " + str_date2 +" 보다 이후날짜 입니다.");
}
// 19950704 이 19980301 보다 이전날짜 입니다.
/*
>> Date 클래스에서 제공하는 Date.before 메소드 <<
date1.before(date2);
date1 날짜가 date2 날짜 보다 이전 날짜인 경우 true를 반환하고,
동일한 날짜이거나 이후 날짜인 경우 false를 반환한다.
*/
if(date1.before(date2)) {
System.out.println(str_date1 +" 이 " + str_date2 +" 보다 이전날짜 입니다.");
}
else {
System.out.println(str_date1 +" 와 " + str_date2 +" 은 동일한 날짜 이거나 "+str_date1+" 이 "+str_date2+" 보다 이후날짜 입니다.");
}
// 19950704 이 19980301 보다 이전날짜 입니다.
/*
>> Date 클래스에서 제공하는 Date.after 메소드 <<
date1.after(date2);
date1 날짜가 date2 날짜 보다 이후 날짜인 경우 true를 반환하고,
동일한 날짜이거나 이전 날짜인 경우 false를 반환한다.
*/
if(date2.after(date1)) {
System.out.println(str_date2 +" 이 " + str_date1 +" 보다 이후날짜 입니다.");
}
else {
System.out.println(str_date2 +" 와 " + str_date1 +" 은 동일한 날짜 이거나 "+str_date2+" 이 "+str_date1+" 보다 이전날짜 입니다.");
}
// 19980301 이 19950704 보다 이후날짜 입니다.
} catch (ParseException e) {
// e.printStackTrace();
System.out.println(">> 달력에 존재하지 않는 값입니다. <<");
}