게시판 글 구현시 date와 시간 관련 질문입니다.


    SimpleDateFormat qqqq = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    SimpleDateFormat zxcv = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    zxcv.setTimeZone(TimeZone.getTimeZone("UTC"));
    final Date zz = new Date();
    try {
        Date xxx = zxcv.parse("2016-10-31T08:25:24.000Z");
        String vvvv = qqqq.format(xxx);

        long subtract = zz.getTime() - xxx.getTime(); // 밀리세컨드 값으로 나옴
        month = (subtract/1000/60/60/24/30);
        day = (subtract/1000/60/60/24);
        hour = (subtract/1000/60/60);
        minute = (subtract/1000/60);

    } catch (ParseException e) {
        e.printStackTrace();
    }

이렇게 해봤는데 subtract 값이 밀리세컨드로 해서 나와서 long month, day, hour, minute을 저렇게 구현했습니다. 그런데 subtract의 값(시간 차이)이 클수록 minute은 60분을 hour는 24시간을 이런식으로 초과하게 되어있는데 분이 60분을 넘어가면 hour로 자동으로 되게하기 위해서는 어떻게 해야 하나요?

  • 2016년 10월 31일에 작성됨
    지금 공익근무 중이고 안드로이드를 공부하고 있습니다.

조회수 79


1 답변


좋아요
1
싫어요
채택취소하기

아래 코드로 한번 테스트 해보세요.

public void printDifference(Date startDate, Date endDate) {
    //milliseconds
    long different = endDate.getTime() - startDate.getTime();

    System.out.println("startDate : " + startDate);
    System.out.println("endDate : "+ endDate);
    System.out.println("different : " + different);

    long secondsInMilli = 1000;
    long minutesInMilli = secondsInMilli * 60;
    long hoursInMilli = minutesInMilli * 60;
    long daysInMilli = hoursInMilli * 24;

    long elapsedDays = different / daysInMilli;
    different = different % daysInMilli;

    long elapsedHours = different / hoursInMilli;
    different = different % hoursInMilli;

    long elapsedMinutes = different / minutesInMilli;
    different = different % minutesInMilli;

    long elapsedSeconds = different / secondsInMilli;

    System.out.printf(
        "%d days, %d hours, %d minutes, %d seconds%n", 
        elapsedDays,
        elapsedHours, elapsedMinutes, elapsedSeconds);
}

출처


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close