Java의 java.util.Date 클래스는 현재 시스템 날짜와 시간을 얻는 간단한 방법을 제공합니다. 최소 예제:
import java.util.Date;
class DateExample {
public static void main(String[] args) {
Date current = new Date();
System.out.println(current.toString());
}
}
출력:
Wed Nov 29 06:36:22 UTC 2017
출력은 기본 toString() 형식을 사용합니다. 사용자 지정 레이아웃으로 날짜를 표시하려면 명시적으로 포맷해야 합니다.
SimpleDateFormat: 날짜 파싱과 포맷팅
Java는 패턴 문자열을 사용하여 문자를 특정 날짜 구성 요소에 매핑합니다. 아래는 참조 표입니다:
문자
날짜/시간 구성요소
예시
G
시대 구분자
AD
y
연도
2018
M
월
July, Jul, 07
w
연중 주
27
W
월중 주
2
D
연중 일
189
d
월중 일
10
F
월중 요일
2
E
요일 이름
Tuesday, Tue
u
요일 번호 (1=월 … 7=일)
1
a
AM/PM 표식
PM
H
시간 (0-23)
0
k
시간 (1-24)
24
K
오전/오후 시간 (0-11)
0
h
오전/오후 시간 (1-12)
12
m
분
30
s
초
55
S
밀리초
978
z
시간대
Pacific Standard Time; PST; GMT-08:00
Z
시간대 오프셋
-0800
X
시간대
-08, -0800, -08:00
특정 포맷 문자열 구성 시 이 표를 참조하세요.
SimpleDateFormat 사용하기
SimpleDateFormat 클래스로 포맷 또는 파싱용 패턴을 정의할 수 있습니다. 예:
원하는 형식: 2012.10.23 20:20:45 PST → 패턴 yyyy.MM.dd HH:mm:ss zzz
원하는 형식: 09:30:00 AM 23-May-2012 → 패턴 hh:mm:ss a dd-MMM-yyyy
팁: 대소문자 주의 – 월은 M, 분은 m 사용 필수.
import java.text.SimpleDateFormat;
import java.util.Date;
class TestDatesFormat {
public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
String pattern = "hh:mm:ss a dd-MMM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
System.out.println(sdf.format(now));
}
}
출력:
Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017
날짜 비교
Java에서 날짜 비교에 가장 신뢰할 수 있는 메서드는 compareTo()로, 첫 번째 날짜가 빠르면 음수, 같으면 0, 느리면 양수를 반환합니다.
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
class TestDatesCompare {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date date1 = sdf.parse("20-08-1981");
Date date2 = sdf.parse("12-10-2012");
System.out.println("Date1 : " + sdf.format(date1));
System.out.println("Date2 : " + sdf.format(date2));
if (date1.compareTo(date2) > 0) {
System.out.println("Date 1 occurs after Date 2");
} else if (date1.compareTo(date2) < 0) {
System.out.println("Date 1 occurs before Date 2");
} else {
System.out.println("Both dates are the same");
}
}
}
출력:
Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2