2012-01-26 2 views
-4

"20:01:00"형식의 시간을 double 형식으로 저장했습니다.java jsf의 시차

나는 위의 다른 2 시간을 계산할 수 있습니다.

있도록 변수 1 = 18시 20분 0초 Variable2에 =

19시 22분 0초 그래서 변수 1이 어떤 작업을 수행 할 변수 2보다 더 많은 경우.

어떻게 자바로 할 수 있습니까?

+0

몇 가지 코드 예제를 게시 하시겠습니까? 그 질문은 분명히 두렵다. – Natix

+0

코딩이 필요 없습니다. 코드에 넣어야한다는 요구 사항이었습니다 ... –

+0

@benylim 왜 시간을 두 배로 저장하고 있습니까? –

답변

2

Date 클래스를 대신 사용하십시오. 그것은 after()과 같은 메소드를 가지고 있습니다. 이것은 비교 구현보다 낫습니다. 시간을 두 배로 저장하는 것은 (시간대가 다르기 때문에) 잘못되었습니다.

2

언급 한 문자열 형식으로 시간을받는 경우 SimpleDateFormat을 사용하여 위에서 언급 한 것처럼 Date 개체를 만든 다음 compareTo (Date anotherDate)와 같은 메서드를 사용하거나 다른 개체에서 한 번 빼기 만 할 수도 있습니다. 다음과 같이 입력하십시오 :

DateFormat df = new SimpleDateFormat("hh:mm:ss"); 
Date date1 = df.parse(stringDate1); 
Date date2 = df.parse(stringDate2); 
if (date1.compareTo(date2) < 0) { 
    # date1 is before date2 
} else if (date1.compareTo(date2) > 0) { 
    # date1 is after date2 
} else { 
    # they are the same 
} 
1

날짜를 두 번 사용 하시겠습니까? 그건 뭔가 새로운 것이고 나는 모든 것을 보았다고 생각했다. (

클래스 java.util.Date은 사용하지 않아야하는 사용되지 않는 메소드가있는 long 타임 스탬프보다 약간 작다.이 타임 스탬프의 값은 다음과 같다. long 신기원 (1970 년 1 월 1 일 00:00:00 GMT)에서 밀리 초를 나타내는 프리미티브. 밀리 초 정밀도의 정수이므로 double으로 저장하지 마십시오. 컴파일러가 울부 짖습니다.

편의상 날짜와 캘린더를 사용할 때 Apache Commons DateUtils class을 편리하고 유용한 방법으로 볼 수 있습니다.