문제

SimpledateFormat 클래스와 java.util.date의 비교 방법에 대한 질문이 있습니다.

날짜 객체를 구성하고 있으며 형식을 형성하고 마지막으로 형식화 된 문자열을 구문 분석하고 원본 날짜와 비교합니다.

DateFormat df = new SimpleDateFormat("yyyy.MMMdd hh:mm:ss SSS");
Date originalDate = new Date();

String s = df.format(originalDate);
Date parsedDate = df.parse(s);

System.out.println("Original date: " + originalDate);
System.out.println("Formatted date: " + s);
System.out.println("originalDate compareTo parsedDate: " + originalDate.compareTo(parsedDate));

결과:

원본 날짜 : Mon Jan 25 15:43:23 CET 2010 포맷 날짜 : 2010.jan.25 03:43:23 868 OriginalDate Compareto ParsedDate : 1

왜 내가 항상 "1"을 얻는가? 원래 날짜가 구문 분석 날짜보다 강력한 이유는 무엇입니까?

도움이 되었습니까?

해결책

나는 그것이 24 시간 관련 문제라고 생각합니다. 원래 날짜는 15 세이므로 오후 3시, 구문 분석 된 사람은 12 시간 형식입니다. 시간 대신 형식 지정자 시간 형식 지정자. 그런 다음 시간이 잘못된 문자열로 바뀌어 정밀도를 잃어 버릴 때. 03 오전 3 시로 간주됩니다. 시도해보십시오 :

DateFormat df = new SimpleDateFormat("yyyy.MMMdd HH:mm:ss SSS");

다른 팁

AM/PM 마커를 추가하면 작동합니다. a

DateFormat df = new SimpleDateFormat("yyyy.MMMdd hh:mm:ss SSS a");

단지 날짜를 비교하려면, 아마도 gettime ()을 사용하여 두 값을 비교할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top