하기 :LOCALDATE의 주 수 (자바 8) 나는 형식의 전체 LOCALDATE의 주 번호를 얻으려고
dd.MM.yyy
나는 자바 8 날짜 API 느릅 나무에서 함수를 발견하지 않았습니다 주 번호를 반환하고 알고리즘을 만들려고했지만 작동하지 않았다.
하기 :LOCALDATE의 주 수 (자바 8) 나는 형식의 전체 LOCALDATE의 주 번호를 얻으려고
dd.MM.yyy
나는 자바 8 날짜 API 느릅 나무에서 함수를 발견하지 않았습니다 주 번호를 반환하고 알고리즘을 만들려고했지만 작동하지 않았다.
작은 경고 하나. 나는 아직 테스트하지 않은,하지만 WeekFields
및 LocalDate.get
의 API 문서를보고, 당신은 같은 것을 수행해야합니다
LocalDate date = ...;
// Or use a specific locale, or configure your own rules
WeekFields weekFields = WeekFields.of(Locale.getDefault());
int weekNumber = date.get(weekFields.weekOfWeekBasedYear());
마크 Rotteveel의 대답은 거의 바로 다시 예이다가 혼동 가능성의 종류 WeekFields
(유사한 발음 방식 이름이지만 직관적 인 사용법에서 벗어남)에 있습니다. 오른쪽 코드는 다른 필드가 필요합니다
LocalDate date = LocalDate.now();
TemporalField woy = WeekFields.of(Locale.getDefault()).weekOfWeekBasedYear();
int weekNumber = date.get(woy);
이 @kleopatra의 대답에 대해,이
SO-post에도 특히 토론과 의견을 유사한 논쟁을 참조하십시오.
본인의 답변을 기반으로 업데이트했습니다. 여기에 Java 8에 대한 액세스 권한이 없었기 때문에 추측해야했습니다 ([WeekFields] (http://docs.oracle.com/javase/8/docs/api)를 읽지 않은 것처럼 보입니다. /java/time/temporal/WeekFields.html) 클래스 문서를 자세히 설명해 드리겠습니다. –
@MarkRotteveel 이제 내 upvote ;-)가 있습니다. "weekOfWeekBasedYear"라는 이름은 너무 기술적이며 짜증납니다. . ISO-8601 종이조차이 용어를 포함하지 않습니다 ("달력 주"또는 "주일"과 같은 용어 만 사용함). –
Locale.getDefault()에주의하십시오. 일부 지역 (예 : 캐나다)에서는 일요일에 시작하는 주를 반환 할 수 있습니다. 월요일부터 시작하여 수주 동안 "Locale.ISO"를 사용하십시오. –
Locale.getDefault()에주의하십시오. 일부 지역 (예 : 캐나다)에서는 일요일에 시작하는 주를 반환 할 수 있습니다. 월요일부터 시작하여 수주 동안 "Locale.ISO"를 사용하십시오. –
Locale.ISO가 없지만 'WeekFields.ISO'가 있습니다. –