2016-09-20 4 views
-3

Date 객체에 현재 날짜를 저장하려면 어떻게합니까? 는이 코드를 시도했지만 오류가 점점 :Date 유형 객체에 날짜를 저장하는 방법

SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal = Calendar.getInstance(); 
Date date = new Date(); 
date=dtf.parse(dtf.format((cal.get(cal.YEAR)+""+cal.get(cal.MONTH)+""+cal.get(cal.DAY_OF_MONTH)))); 

내가 "날짜"개체 오늘 [2016년 9월 20일]의 형식의 날짜를 저장할.

+3

날짜 형식이 없습니다 – Jens

답변

0
SimpleDateFormat dtf = new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal = Calendar.getInstance(); 
System.out.println(dtf.format(cal.getTime())); 
Date date=new Date(); 
date=dtf.parse(dtf.format(cal.getTime())); 
+0

이 메서드는 날짜 개체로 날짜를 저장할 수 있습니다 ... – venkey

+2

코드에 설명을 추가하십시오. –

+0

아니요, Calendar.getInstance()가 싱글 톤 인스턴스를 반환하지 않습니다. getInstance()를 사용하는 시점은 반환 할 Calendar 구현 및이를 초기화하는 방법을 결정할 때 기본 로케일 및 표준 시간대를 고려해야한다는 것입니다. 두 번째 캘린더를 현재 시간으로 가져 오려면 아무 것도 할 필요가 없으므로 Calendar.getInstance()를 다시 호출하면됩니다. 달력 시간대에서 형식을 가져 오는 데 사용되는 SimpleDateFormat. 반환 형식은 문자열 형식이지만 우리는 구문 분석 방법을 사용하는 날짜 형식으로 변경하려고합니다.마침내 날짜 객체가됩니다. – venkey

4

TL; DR

LocalDate.parse("2016-09-20") 

LocalDate

는 이제 java.time 클래스에 의해 대체 사용 귀찮은 오래된 기존 클래스입니다. 더 나쁜 것은 java.util.Date 클래스의 날짜 - 시간 객체에 날짜 전용 값을 넣으려고한다는 것입니다.

LocalDate 클래스는 time-of-day 및 시간대가없는 날짜 전용 값을 나타냅니다.

입력 문자열은 ISO 8601 표준 형식을 따릅니다. java.time 클래스는 기본적으로 구문 분석/문자열 생성에 ISO 8601 형식을 사용합니다. 따라서 서식 지정 패턴을 지정할 필요가 없습니다.

LocalDate ld = LocalDate.parse("2016-09-20") ; 

이 값을 나타내는 문자열을 생성하려면 toString으로 전화하십시오. java.time

소개

String output = ld.toString() ; // 2016-09-20 

java.time 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이러한 클래스는 java.util.Date, .Calendar, & java.text.SimpleDateFormat과 같이 번거로운 이전 날짜 시간 클래스를 대체합니다.

Joda-Time 프로젝트는 지금 maintenance mode에, java.time로 마이그레이션을 조언한다. 자세한 내용을 보려면하려면

Oracle Tutorial를 참조하십시오. 그리고 많은 예제와 설명을 위해 스택 오버플로를 검색하십시오. java.time 기능의 대부분

ThreeTen-Backport는 자바 6 & 7 백 포팅 또한 (How to use… 참조)에 ThreeTenABPAndroid하도록 구성된다.

ThreeTen-Extra 프로젝트는 추가 클래스로 java.time을 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 가능성을 입증합니다. 여기에 Interval, YearWeek, YearQuartermore과 같은 유용한 클래스가 있습니다.

관련 문제