게시판 글 구현시 date와 시간 관련 질문입니다.
조회수 1704회
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로 자동으로 되게하기 위해서는 어떻게 해야 하나요?
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); }
출처
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력