1 년만을 표시하는 목록 선택기를 만들고 싶습니다.1 년 목록 대화 상자 만 얻을 수있는 방법
하지만 올해는 내년에 자동으로 증가하기를 바랍니다.
DatePicker에서이 작업을 시도했지만 연도 선택기 만 표시하지 않았습니다.
어떻게하면됩니까?
1 년만을 표시하는 목록 선택기를 만들고 싶습니다.1 년 목록 대화 상자 만 얻을 수있는 방법
하지만 올해는 내년에 자동으로 증가하기를 바랍니다.
DatePicker에서이 작업을 시도했지만 연도 선택기 만 표시하지 않았습니다.
어떻게하면됩니까?
사용 java.time 클래스, 번잡 한 기존 레거시 날짜 - 시간 클래스에 대한 현대적인 교체.
연도를 결정하는 것은 날짜를 결정하는 것을 의미합니다. 날짜를 결정하려면 시간대가 필요합니다. 어떤 주어진 순간에, 날짜는 지구에 따라 지역마다 다릅니다. 예를 들어, 파리에서 자정 몇 분 후 프랑스는 새로운 날이며, 여전히 몬트리올 퀘벡에서 "어제"입니다.
지정하지 않으면 JVM의 현재 기본 시간대가 적용됩니다. 기본값은 달라지며 심지어 런타임 중에 이됩니다. 항상 원하는/예상 시간대를 명시 적으로 지정하는 것이 좋습니다.
ZoneId z = ZoneId.of("America/Montreal");
연도 만 원할 경우이 시간대 문제는 분명히 연말/시작 부분에 적용됩니다. 그러나 일년 중 365 일 또는 366 일을 모두 일하도록 프로그램 할 수도 있습니다.
LocalDate
LocalDate
클래스는 시간이 하루의 시간 영역없이없이 날짜 만 값을 나타냅니다.
LocalDate ld = LocalDate.now(z);
마지막으로 올해를 심문합니다.
int year = ld.getYear();
내년과 작년을 계산하십시오.
int nextYear = (year + 1);
int lastYear = (year - 1);
이제 이러한 값을 사용하여 숫자 선택기를 표시하십시오.
java.time 프레임 워크 나중에 자바 8에 내장되어 java.time 소개
java.util.Date
, .Calendar
, & java.text.SimpleDateFormat
과 같이 오래된 번거로운 날짜 시간 클래스를 대체합니다.Joda-Time 프로젝트는 현재 maintenance mode에 있으며, java.time으로 마이그레이션하는 것이 좋습니다.
자세히 알아 보려면 Oracle Tutorial을 참조하십시오. 그리고 많은 예제와 설명을 위해 스택 오버플로를 검색하십시오.
자바의 대부분.시간 기능은 Java 6 & 7에 ThreeTen-Backport으로 다시 포트되고 Android은 ThreeTenABP (How to use… 참조)에 맞게 다시 조정됩니다.
ThreeTen-Extra 프로젝트는 추가 클래스로 java.time을 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 가능성을 입증합니다.
기본 TimePicker를 사용하는 것은 불가능합니다. 그러나 MH의 "해킹"인 solution을 구현할 수 있습니다.
또는 NumberPicker을 사용하고 사용 가능한 기간을 나열 할 수 있습니다.
답장을 보내 주셔서 감사합니다. @Basil. – pmb