반응형
Java Calendar 세트 (int year, int month, int date)가 올바른 날짜를 반환하지 않는 이유는 무엇입니까?
이 질문에 이미 답변이 있습니다.
문서에 따르면 달력 set ()은 다음과 같습니다.
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#set%28int,%20int,%20int%29
set(int year, int month, int date)
Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.
암호:
Calendar c1 = GregorianCalendar.getInstance();
c1.set(2000, 1, 30); //January 30th 2000
Date sDate = c1.getTime();
System.out.println(sDate);
산출:
Wed Mar 01 19:32:21 JST 2000
1 월 30 일이 아닌 이유 ???
월 1은 2 월입니다. 2 월 30 일이 3 월 1 일로 변경됩니다. 월은 0으로 설정해야합니다. 가장 좋은 방법은 Calendar에 정의 된 상수를 사용하는 것입니다.
c1.set(2000, Calendar.JANUARY, 30);
Calendar 개체의 월은 0부터 시작합니다.
0 = January = Calendar.JANUARY
1 = february = Calendar.FEBRUARY
예에서 선택한 날짜가 흥미 롭습니다. 예제 코드 블록은 다음과 같습니다.
Calendar c1 = GregorianCalendar.getInstance();
c1.set(2000, 1, 30); //January 30th 2000
Date sDate = c1.getTime();
System.out.println(sDate);
및 출력 Wed Mar 01 19:32:21 JST 2000
.
처음 예제를 읽을 때 출력이 잘못되었다고 생각하지만 사실입니다.)
Calendar.Month
0부터 시작하므로 1은 2 월을 의미합니다.- 2 월 마지막 날은 28 일이므로 출력은 3 월 2 일이어야합니다.
- 그러나 선택한 연도는 중요합니다. 2000은 2 월 29 일을 의미하므로 결과는 3 월 1 일이어야합니다.
반응형
'IT Share you' 카테고리의 다른 글
파이썬에서이 튜플을 조인 할 수없는 이유는 무엇입니까? (0) | 2021.01.10 |
---|---|
iTextSharp 세트 문서 가로 (가로) A4 (0) | 2021.01.10 |
인증서 저장소에서 매니페스트 서명 인증서를 찾을 수 없습니다. (0) | 2021.01.10 |
클래스를 확장하고 인터페이스를 구현하는 일반 클래스 (0) | 2021.01.10 |
Python의 values () 사전 메서드에 해당하는 Javascript (0) | 2021.01.10 |