Java에서 날짜 포맷을 사용 시 SimpleDateFormat class를 사용하게 됩니다.
이때 연도를 표현할때 "yyyy" 와 "YYYY" 차이을 이해하고 사용하는것이 중요 합니다.
이 글에서는 두 형식의 차이점과 어떤 상황에서 사용해야 하는지를 설명하겠습니다.
▶ yyyy 와 YYYY의 차이점
- yyyy (Calendar Year)
- 설명: 일반적인 연도를 표기
- 달 단위의 연도 표기
- 동작: 날짜 객체의 실제 연도를 표기
- 예) 2024.12.29 > yyyy로 표기하면 2024가 리턴 됨
- 일반적으로 연도 데이터를 표기할때 가장 많이 사용 되는 형식
- "yyyyMMdd" 형식을 기본으로 숙지하면 됩니다!
- 설명: 일반적인 연도를 표기
- YYYY (Week Year)
- 설명: ISO-8601 주 연도를 표기
- 주 연도는 해당 날짜가 속한 주를 기준으로 계산되는 연도
- 한 해의 첫 번째 주는 1월 4일을 포함하는 주로 정의
- 주 기반 데이터를 다룰 때에만 사용
- 동작: 해당 날짜가 속한 주의 연도를 리턴
- 연말 / 연초에 연도가 주단위로 변경 됨
- 설명: ISO-8601 주 연도를 표기
▶ 사용 예
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class YearFormatExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
// 2024년 12월 31일로 설정했습니다. 해당 날짜를 기준으로 결과를 확인합니다.
calendar.set(2024, 11, 31);
// yyyy 사용
SimpleDateFormat sdfYyyy = new SimpleDateFormat("yyyy.MM.dd");
System.out.println("달력 연도: " + sdfYyyy.format(calendar.getTime())); // 달력 연도: 2024.12.31
// YYYY 사용
SimpleDateFormat sdfYYYY = new SimpleDateFormat("YYYY.MM.dd");
System.out.println("주 연도: " + sdfYYYY.format(calendar.getTime())); // 주 연도: 2025.12.31
}
}
|
cs |
▶ 결론
- 일반적인 경우라면 yyyy 포맷을 사용하는 것이 기본입니다.
- 프로젝트 별 주단위 연도를 끊어야 하는 경우가 있는데요. 이런 경우에만 YYYY 포맷을 사용하면 됩니다.
'Java' 카테고리의 다른 글
[ 자바 코딩 ] 숫자 콤마 찍기 (금액 표기) (2243) | 2021.06.10 |
---|---|
[ 자바 코딩 ] Java 배열 정렬 (내림차순 vs 올림차순) (2296) | 2021.06.10 |
[ 자바 코딩 ] NumberFormatException 원인과 해결방법 (1938) | 2021.06.10 |
[ 자바 코딩 ] Java split() 함수로 문자열 자르기 (2282) | 2021.06.10 |
[ 자바 코딩 ] java substring 으로 문자열 자르기 (3343) | 2021.06.10 |