2016-07-04 6 views
1

"2016-07-08"(2016 년 7 월 8 일) 형식의 날짜가 문자열 형식입니다. 금요일인지 확인해야하는데 이유는 날짜가 바뀌고 제공된 날짜가 금요일인지 항상 확인해야하기 때문입니다. 나는 (startDate를 가정 내 데이트를 보유 문자열) 다음 코드를 사용하고 있습니다 :금요일 형식인지 여부를 확인하려면 String 형식의 날짜를 실제 날짜로 변환해야합니다.

DateFormat formatter = new SimpleDateFormat("YYYY-MM-dd"); 
java.util.Date date = formatter.parse(startDate); 
cal.setTime(date); 
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY){ 
    System.out.println("IT'S FRIDAY!!!!");  
} 

내가 칼에 저장된 값을 출력 시도를하고 04 중부 유럽 표준시 00시 00분 0초 2016 월 월을 반환

답변

3

자본금 Y은 주 단위입니다. 아마도 yyyy-MM-dd을 의미했을 것입니다 (해당 연도의 소문자는 y).

javadoc은 모든 유효한 패턴을 나열합니다.

+0

감사합니다. –

1

문제는 패턴을 분석하는 데 사용됩니다. 대신 YYYY-MM-dd로하여 SimpleDateFormat을 만드는이 대신

new SimpleDateFormat("yyyy-MM-dd") 
+0

감사합니다. –

2

그것은 yyyy하지 YYYY해야 사용하십시오.

사용하십시오.

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
0

소문자 'y'로 된 날짜 형식으로 "yyyy-MM-dd"을 사용해야합니다.

0

기타 답변은 정확합니다. 하지만 질의 응답은 구식 수업을 사용합니다.

java.time

java.time 프레임 워크는 자바의 초기 버전과 함께 제공되는 귀찮은 된 날짜 - 시간의 수업을 supplants.

Boolean isFriday = LocalDate.parse("2016-07-08").getDayOfWeek().equals(DayOfWeek.FRIDAY); 

LocalDate 클래스는 시간이 하루의 시간 영역없이없이 날짜 만 값을 나타냅니다.

DayOfWeek enum에는 요일을 나타내고 테스트하는 인스턴스가 7 개 있습니다.

입력 문자열은 ISO 8601 형식입니다. java.time 클래스는 String 표현을 파싱하고 생성 할 때 기본적으로 이러한 표준 형식을 사용합니다. 따라서 서식 지정 패턴을 정의 할 필요가 없습니다.

관련 문제