자바를 이용해서 두 날짜 값의 차이를 시/분/초로 구하기.


문제풀이 등 급할 때 쓰기 좋은 방법을 소개합니다.


자바에서 기본 제공하는 클래스로 간단하게 구할 수 있습니다.


도구


  1. new Date()
    java.util의 Date는 비교적 정밀하게 날짜와 시간을 표현합니다.
    (Date는 자바 기본 API로 쓸 수 있는 점은 좋지만 조금 더럽다는 평이 있어서 잘 사용하는 클래스는 아닙니다[각주:1].)

  2. Date.getTime()
    Date.getTime()은 Date를 밀리세컨드로 변환해서 long형 숫자 데이터로 반환합니다.
    이를 이용하면 산술연산으로 시간 차이를 쉽게 구할 수 있습니다.


다음은 경과한 초를 구하는 예제입니다. 수행결과로 3을 출력합니다.


import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Date;
import java.text.ParseException;

public class Main {
	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub
		SimpleDateFormat f = new SimpleDateFormat("HH:mm:ss", Locale.KOREA);
		Date d1 = f.parse("01:05:10");
		Date d2 = f.parse("01:05:07");
		long diff = d1.getTime() - d2.getTime();
		long sec = diff / 1000;
		System.out.println(sec);
	}
} 


1000밀리초는 1초니까, getTime()으로 구한 값을 1000으로 나누면 초를 얻습니다.


마찬가지로 분을 구할 때는 1000*60=60000으로 나누고,


시를 구할 때는 1000*60*60=3600000으로 나눕니다.



  1. https://brunch.co.kr/@kd4/11 [본문으로]
Top