본문 바로가기
  • 실행력이 모든걸 결정한다
유용한 정보, 링크

특정 날짜에 시간을 더하기 (Java)

by 김코더 김주역 2022. 3. 6.
반응형

SimpleDateFormat 클래스는 날짜 정보를 원하는 형태로 다룰 수 있게 해주는 클래스로, 대표적으로 parse(), format() 메소드를 제공한다.

parse() 메소드는 지정한 형태의 Data형으로 파싱해서 반환해주고, format() 메소드는 지정한 형태의 String형으로 반환해준다.

 

아래 예제에서는 "2022-03-06 10:52:35.516" 문자열을 Date형으로 반환해서 Calendar의 인스턴스에 저장하고, Calendar의 MILLISECOND 단위로 2500(2.5초)을 빼주었다. 그 외에도 YEAR, MONTH, DAY_OF_MONTH, HOUR, MINUTE, SECOND 등의 단위를 사용할 수 있다.

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Example {
	public static void main(String[] args) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		Date sdate, edate;
		Calendar cal = Calendar.getInstance();
		String line="2022-03-06 10:52:35.516";
		String diffsec="2.5s";
		try{
			sdate=sdf.parse(line);
			cal.setTime(sdate);
			int ptmilli = (int) (Float.parseFloat(diffsec.split("s")[0])*1000);
			cal.add(Calendar.MILLISECOND, -ptmilli);
			edate=cal.getTime();
			System.out.println(sdf.format(edate));
		} catch(Exception e){e.printStackTrace();}
	}
}

 

실행결과

반응형

댓글