2010-02-11 7 views
2

나는 어제의 날짜를 java로 얻고 싶다. 다음 코드를 사용했지만 매번 다른 날짜가 표시됩니다. 코드가 어디에서든지 변경되어야하는지 확인하십시오. 미리 감사드립니다. 00 : 00.000000000
업데이트 날짜 = 2011-03-10 00 : 00 : 00.0자바를 사용하여 어제의 날짜를 가져 오는 것에서의 의심

SimpleDateFormat formatter= 
     new SimpleDateFormat("yyyy-mm-dd "); 
    Calendar currentDate = Calendar.getInstance(); 
    String previous = formatter.format(currentDate.getTime())+ "00:00:00.000000000"; 
    System.out.println("previous ="+previous); 
    currentDate.add(Calendar.DATE, -1); 
    String previousDate = formatter.format(currentDate.getTime())+ "00:00:00.000000000"; 
    Timestamp updateTimestamp = Timestamp.valueOf(previousDate); 
    System.out.println("Update date ="+updateTimestamp); 

이 내가 마지막으로
이전 = 2010-15-11 00 실행할 때 내가 가진 출력은

답변

10

패턴에 mm을 사용 했으므로 개월 대신 분이 사용됩니다.

당신이 Joda Time를 사용 싶다면, 간단한 날짜 프레임 워크는 당신이 할 수있는 다음 :

DateTimeFormat format = DateTimeFormat.forPattern("yyyy-MM-dd 00:00:00.000000000"); 
DateTime now = new DateTime(); 
System.out.println("Previous :" + format.print(now); 
DateTime oneDayAgo = now.minusDays(1); 
System.out.println("Updated :" + format.print(oneDayAgo); 
+0

그러면 정확히 그가이 사용 사례에이 코드를 사용해야하는지 보여줍니다. – Bozho

+0

내 대답을 편집하여 정확히 원하는 것을 반영합니다 –

+1

그래서 'DateTime oneDayAgo = now.minusDays 1);'currentDate.add (Calendar.DATE, -1);보다 훨씬 덜 진절머리하기 때문에이 경우 타사 라이브러리를 추가하는 것이 좋습니다. – jarnbjo

15

문제는 당신이 사용하고 있다는 점이다 해 - 마고를 당기는 'YYYY-MM-DD' 일. 대신 'yyyy-MM-dd'를 사용하십시오.

+1

그리고 유효한 모든 패턴에 대한 개요는'SimpleDateFormat' javadoc을 확인하십시오 : http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html – BalusC

6

날짜 형식 패턴 문자열이 잘못되었습니다. "mm"은 분, "MM"은 개월입니다. "2010-52-11 ..."과 같은 중간 결과를 보면 쉽게 해결할 수 있습니다.

2
Calendar cal = Calendar.getInstance(); 
cal.roll(Calendar.DATE, false); //you can also use add(int, int) 
System.out.println(cal.toString()); 

1.1 이후 모든 표준 Java. 필요한 경우 GregorianCalendar를 살펴보십시오. 문서를 읽고 일광 절약 시간 등을 처리하는 방법을 확인하십시오

+0

'GregorianCalendar'를 별도로 잡는 것은 불필요합니다. . 'Calendar # getInstance()'는 이미 그것을 반환합니다. – BalusC

+0

GregorianCalendar는 표준 Java에서 Calendar의 '유일한'구현입니다. 그러나 문서는 읽을 때 유용 할 수 있습니다. – Cogsy

+0

Cogsy : GregorianCalendar는 공용 API가있는 유일한 Calendar 구현입니다. Sun의 Java 6에는 일본 및 불교 (태국) 달력에 대한 구현도 포함됩니다. – jarnbjo

관련 문제