>Java >java지도 시간 >SimpleDateFormat: 'Y'가 'y'와 다른 연도를 표시하는 이유는 무엇입니까?

SimpleDateFormat: 'Y'가 'y'와 다른 연도를 표시하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-31 06:31:09269검색

SimpleDateFormat: Why Does 'Y' Show a Different Year Than 'y'?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.