yyyy란?
yyyy는 Calendar Year입니다
일반적으로 우리가 사용하는 연도로, 1월 1일부터 12월 31일까지를 기준으로 정의됩니다.
예를 들어, 2023년 1월 1일과 2023년 12월 31일 모두 달력 연도 yyyy로는 2023년입니다.
YYYY란?
YYYY는 Week Year입니다
주차 연도는 ISO 8601 표준에 따라 정의되며, 연도를 주 단위로 계산합니다.
https://en.wikipedia.org/wiki/ISO_week_date
한 해의 첫 주(Week 1)는 시작 연도 내 주의 일 대부분(4일 이상)을 가진 첫번째 주입니다
ISO 8601 표준에서 주 단위의 시작은 월요일이지만, 테스트 해보니 SimpleDateFormat에서는 일요일부터 시작하고 있습니다 (new GregorianCalendar.getFirstDayOfWeek()가 일요일이라 그런것같습니다)
import java.text.SimpleDateFormat;
import java.util.*;
public class Main {
public static void main(String[] args) {
// Corrected patterns
SimpleDateFormat sdf1 = new SimpleDateFormat("YYYY-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
// Create the date
Date date29 = new GregorianCalendar(2024, Calendar.DECEMBER, 29).getTime();
Date date30 = new GregorianCalendar(2024, Calendar.DECEMBER, 30).getTime();
Date date31 = new GregorianCalendar(2024, Calendar.DECEMBER, 31).getTime();
Date date1 = new GregorianCalendar(2025, Calendar.JANUARY, 1).getTime();
Date date2 = new GregorianCalendar(2025, Calendar.JANUARY, 2).getTime();
Date date3 = new GregorianCalendar(2025, Calendar.JANUARY, 3).getTime();
Date date4 = new GregorianCalendar(2025, Calendar.JANUARY, 4).getTime();
// Print the formatted output
System.out.println("2024-12-29 Week Year: " + sdf1.format(date29));
System.out.println("2024-12-29 Calendar Year: " + sdf2.format(date29));
System.out.println("2024-12-30 Week Year: " + sdf1.format(date30));
System.out.println("2024-12-30 Calendar Year: " + sdf2.format(date30));
System.out.println("2024-12-31 Week Year: " + sdf1.format(date31));
System.out.println("2024-12-31 Calendar Year: " + sdf2.format(date31));
System.out.println("2024-12-01 Week Year: " + sdf1.format(date1));
System.out.println("2025-01-01 Calendar Year: " + sdf2.format(date1));
System.out.println("2025-01-02 Week Year: " + sdf1.format(date2));
System.out.println("2025-01-02 Calendar Year: " + sdf2.format(date2));
System.out.println("2025-01-03 Week Year: " + sdf1.format(date3));
System.out.println("2025-01-03 Calendar Year: " + sdf2.format(date3));
System.out.println("2025-01-04 Week Year: " + sdf1.format(date4));
System.out.println("2025-01-04 Calendar Year: " + sdf2.format(date4));
}
}
2024-12-29 Week Year: 2025-12-29
2024-12-29 Calendar Year: 2024-12-29
2024-12-30 Week Year: 2025-12-30
2024-12-30 Calendar Year: 2024-12-30
2024-12-31 Week Year: 2025-12-31
2024-12-31 Calendar Year: 2024-12-31
2024-12-01 Week Year: 2025-01-01
2025-01-01 Calendar Year: 2025-01-01
2025-01-02 Week Year: 2025-01-02
2025-01-02 Calendar Year: 2025-01-02
2025-01-03 Week Year: 2025-01-03
2025-01-03 Calendar Year: 2025-01-03
2025-01-04 Week Year: 2025-01-04
2025-01-04 Calendar Year: 2025-01-04
YYYY는 Week Year입니다
2024년도의 가장 마지막의 첫번째 날은 2024-12-29(일) 입니다
2024-12-29 주의 3일(29,30,31)은 2024년 이고 4일 (1,2,3,4) 은 2025년 입니다
따라서, 2024-12-29를 Week Year로 2025입니다
https://docs.oracle.com/javase/8/docs/api/java/util/GregorianCalendar.html#week_year
https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
'개발업무 > 개발' 카테고리의 다른 글
헬스체크 캐싱 적용 (0) | 2024.11.24 |
---|---|
docker network (0) | 2024.07.21 |
Apache web server request body 로깅 (0) | 2024.05.30 |
Apache Server 설치 (0) | 2024.05.29 |
Java 대용량 엑셀 다운로드 (SXSSF) (0) | 2024.04.10 |