[Java] 날짜 클래스(Date, Calendar)와 지역과 시간대 클래스(Locale, Timezone)
by 우와한개발자
[날짜 클래스]
1. Date
- java.util.Date
- 컴퓨터의 날짜 정보를 읽어 Date 객체 생성
| 생성자/메서드 | 설명 |
| Date() | 현재 날짜 정보로 Date 객체 생성 |
| Date(long date) | 1970년 1월 1일 00:00:00 이후의 시간을 밀리초로 입력해 생성 |
| toString() | 현재 날짜와 시간 정보를 문자열로 반환 |
| getTime() | 1970년 1월 1일 0시 기준으로 현재 시점을 밀리초로 반환 |
Date now = new Date();
System.out.println(now); // 현재 날짜/시간 출력
System.out.println(now.getTime()); // 밀리초 값 출력
⚠️ java.sql.Date도 있으니 주의
2. Calendar
- 달력을 표현한 추상 클래스
- new가 아닌 getInstance()로 객체 생성
Calendar cal = Calendar.getInstance();
// get() + Calendar 상수로 날짜/시간 조회
cal.get(Calendar.YEAR) // 연도
cal.get(Calendar.MONTH) + 1 // 월 ( 0부터 시작이므로 +1 필요)
cal.get(Calendar.DATE) // 일
cal.get(Calendar.AM_PM) // 0 = 오전, 1 = 오후
cal.get(Calendar.HOUR) // 시
cal.get(Calendar.MINUTE) // 분
cal.get(Calendar.SECOND) // 초
cal.getTimeInMillis() // 밀리초
// 다른 TimeZone 적용
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
cal = Calendar.getInstance(tz);
⚠️ Calendar.MONTH는 0부터 시작
[ 지역과 시간대 클래스 ]
1. Locale
- 특정 지리적, 정치적, 문화적 영역을 나타내는 클래스
- 주로 NumberFormat, DecimalFormat, SimpleDateFormat 등 형식화 클래스와 함께 사용
Locale locale = new Locale("ko", "KR");
// Locale locale = Locale.forLanguageTag("en-US");
// Locale locale = Local.of("en","US");
locale.getLanguage(); // "ko"
locale.getCountry(); // "KR"
locale.getDisplayCountry(); // "대한민국"
// 숫자 형식을 로케일에 따라 다르게 출력
NumberFormat nf = NumberFormat.getNumberInstance(new Locale("de", "DE"));
DecimalFormat df = (DecimalFormat) nf;
df.applyPattern("###,###.###");
df.format(123456.789); // 독일식: 123.456,789
- Local.of(언어코드, 지역코드)
- 언어코드 : 소문자 문자열
- 지역코드 : 대문자 문자열
- 지역(국가)마다 언어가 다르고, 통화가 다름
- 지역(국가)마다 언어가 다르고, 통화가 다름
2. Timezone
- Timezone 객체는 시간대 오프셋을 나타냄
- 우리나라 타임존 ID 는 “Asia/Seoul”
TimeZone tz = TimeZone.getDefault();
tz.getID(); // "Asia/Seoul"
tz.getDisplayName(); // "Korea Standard Time"
tz.getRawOffset() / 1000 / 60; // UTC와의 차이(분)
tz.useDaylightTime(); // 서머타임 사용 여부
// 특정 TimeZone 지정
TimeZone tz2 = TimeZone.getTimeZone("America/Los_Angeles");
'언어 > Java' 카테고리의 다른 글
| [Java] 수학 관련 클래스(Random, Math) (0) | 2026.03.15 |
|---|---|
| [Java] 형식화클래스(DecimalFormat, SimpleDateFormat, MessageFormat, ChoiceFormat) (0) | 2026.03.05 |
| [Java] Object 클래스(equals / hashCode / toString / 스레드) (0) | 2026.03.05 |
| [Java] 정규 표현식(regular expression)과 Pattern/Matcher 클래스 (0) | 2026.03.04 |
| [Java] 문자열 클래스(String, StringBuffer, StringBuilder) (0) | 2026.03.04 |
블로그의 정보
우와한개발자 님의 블로그
우와한개발자