다른 라이브러리에는 몇 가지 유효한 해결책이 있습니다. 그러나 표준 역 연도 "y"를 사용하는 것이 잘못되었음을 알아야합니다. 대신 은 주중 기일 인 (또는 주 단위로 표시된 연도)을 기호 "Y"(대문자)로 사용해야합니다. 기존 사용
예
Calendar
-stuff :
java.sql.Date sqlDate = new java.sql.Date(2017 - 1900, 0, 1); // 2017-01-01
LocalDate ld = sqlDate.toLocalDate();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("YYYY-'W'ww", Locale.FRANCE);
System.out.println(dtf.format(ld)); // 2016-W52
사이드 참고 :
java.sql.Date sqlDate = new java.sql.Date(2017 - 1900, 0, 1); // 2017-01-01
GregorianCalendar gcal = new GregorianCalendar();
gcal.setFirstDayOfWeek(Calendar.MONDAY);
gcal.setMinimalDaysInFirstWeek(4);
gcal.setTime(sqlDate);
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-'W'ww");
System.out.println(sdf.format(gcal.getTime())); // 2016-W52
예는 자바-8을 사용하여 여기에 프랑스의 로케일을 선택했습니다 ISO-8601에 필요한 정확한 주 구성을 확인하십시오.
을 : 만 재미 있고 당신은 또한 얻을 달력 주와 몇 가지 연산을 할 계획 (같은 plusWeeks(5)
또는 일부 지역화 된 서식이 출력을 얻을 계획) 경우 잉여 가치를 제공 나의 라이브러리 Time4J를 사용
예
java.sql.Date sqlDate = new java.sql.Date(2017 - 1900, 0, 1); // 2017-01-01 PlainDate value = JDBCAdapter.SQL_DATE.translate(sqlDate); CalendarWeek cw = CalendarWeek.of( value.get(PlainDate.YEAR_OF_WEEKDATE), value.get(Weekmodel.ISO.weekOfYear()) ); System.out.println(cw.toString()); // 2016-W52
'this.fieldName'의 데이터 유형과 내용은 정확히 무엇입니까? –
열 이름입니다. '날짜'데이터 유형이 '시간'이라고 가정 해 보겠습니다. – Vishnukk
설명은 댓글이 아닌 질문에 대한 수정 사항으로 게시되어야합니다. –