2016-09-19 11 views
0

거기 java.time 수업 지원, 또는 week dates에 대한 확장 ThreeTen-Extra, 같은 2010년 1월 일요일 3 입니다 2009-W53-7 구체적 년 - 주 일입니다. java.time에서 년 - 주 - 일?

년 주 에 관해서는없이 하루의-주 :

그러나 요일을 어떻게 표시 할 수 있습니까?

답변

1

IsoFields 클래스를 참조하십시오.이 클래스는 주 기준 연도와 주 기준 요일을 쿼리 할 수 ​​있습니다. 전용 포맷터 ISO_WEEK_DATE도 있습니다.

enum은 월요일에서 일요일까지 요일의 숫자를 알려주며, 1-7은 숫자입니다. LocalDate::getDayOfWeek으로 전화 한 다음 DayOfWeek::getValue으로 전화하십시오. 2016년 12월 7일

int weekOfWeekBasedYear = ld.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR) ; 
int yearOfWeekBasedYear = ld.get(IsoFields.WEEK_BASED_YEAR) ; 
int dayOfWeek = ld.getDayOfWeek().getValue(); 

표준 ISO 8601 week date formats에 문자열을 구축하기 위해이 부분을 사용

LocalDate ld = LocalDate.now(ZoneId.of("America/Montreal")) ; 
.

String yearWeek = yearOfWeekBasedYear + "-W" + String.format("%02d", weekOfWeekBasedYear) ; 

2016-W49

String yearWeekDay = yearWeek + "-" + dayOfWeek ; 

2016 W49-3

또는 사전 정의 된 DateTimeFormatter.ISO_WEEK_DATE이 작업을 할 수 있습니다.

String ywd = ld.format(DateTimeFormatter.ISO_WEEK_DATE); 

2016 W49-3 동일한 포맷은 표준 문자열을 파싱 할 수

.

String input = "2016-W49-3" ; 
LocalDate ldParsed = LocalDate.parse(input , DateTimeFormatter.ISO_WEEK_DATE) ; 

2016년 12월 7일

+0

감사하지만 나는 대표에 대해 물어 된 날 - 중 - 주는'7'에서'2009 W53- 년 주의 7'. 모두 고려할 때, 이것은 하루의 날짜를 나타냅니다. –

+0

요일은 단지'getDayOfWeek(). getValue()'입니다. – JodaStephen

+0

[IdeOne.com의 라이브 코드] (http://ideone.com/7r0zeP)를 참조하십시오. –