SimpleDateFormat에서 'Y'는 2012를 반환하고 'y'는 2011을 반환하는 이유는 무엇입니까?
관찰한 동작, 여기서 'Y' 동일한 Date 객체에 대해 2012를 인쇄하고 'y'는 2011을 인쇄합니다. 주 연도와 역년.
주 연도와 역년 비교
날짜 형식에서 'Y'는 주 연도를 나타내며 역년과 일치합니다. , 그러나 주 계산 방식에 따라 다를 수 있습니다. 주 연도는 해당 연도의 첫 번째 주의 일요일에 시작하여 해당 연도의 마지막 주의 토요일에 끝납니다.
한편, 'y'는 달력 연도를 나타냅니다. 1월 1일에 시작하는 전통적인 그레고리력 연도입니다.
귀하의 예에서 사용한 Date 개체는 주 연도 계산에 따르면 2012년 첫 번째 주에 속하지만 2012년의 마지막 주에 속합니다. 역년 계산에 따르면 2011년입니다. 결과적으로 'Y'는 2012(주 연도)를 인쇄하고 'y'는 2011(역년)을 인쇄합니다.
이 개념을 더 자세히 설명하려면 다음 예를 고려하세요.
System.out.println(new SimpleDateFormat("Y").format(new Date("December 29, 1997"))); // prints 1998 System.out.println(new SimpleDateFormat("y").format(new Date("December 29, 1997"))); // prints 1997
이 경우 'Y'는 기술적으로는 1998년의 마지막 주임에도 불구하고 날짜가 해당 주의 첫 번째 주에 속하므로 1998을 인쇄합니다. 1997. 그러나 'y'는 해당 날짜의 역년이기 때문에 1997을 인쇄합니다.
위 내용은 SimpleDateFormat: 'Y'가 'y'와 다른 연도를 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!