카테고리 없음

[JAVA] java.sql.timestamp 계산, 연산하기

Emil :) 2020. 11. 17. 09:19
728x90
반응형
이 글은 Notion에서 작성 후 재편집한 포스트입니다.

목차

개요


Timestamp 형식은 계산해주는 메서드가 딱 정해져 있지 않다. 그래서 Calendar 객체를 사용해서 한번 거쳐가줘야 한다..
그래서 이 포스팅에선 이 Timestamp 를 계산하는 방법에 대해 쓰고자 한다.

아, 참고로 Timestamp는 그냥 java.security 안에 있는 Timestamp와 java.sql에 있는 Timestamp가 있는데, security는 구글링 하면 많이 나온다. java.sql.timestamp에 대해서 서술하도록 하겠다.

참고


stackoverflow.com/questions/7450045/how-do-i-increment-a-java-sql-timestamp-by-14-days

 

How do I increment a java.sql.Timestamp by 14 days?

I have an app that takes a Timestamp as a boundary for the start date and end date of a sql selection, I want to populate a hashmap with weeks this year since the first monday of the year as the v...

stackoverflow.com

진행 과정


현재 시간 가져오기


먼저, Timestamp 형식으로 넘어오는 친구가 있다고 치자.

java.util.Date date = new Date();

long time = date.getTime();
System.out.println("Time in Milliseconds: " + time);

Timestamp ts = new Timestamp(time);
System.out.println("Current Time Stamp: " + ts);

Timestamp는 바로 현재시간을 가져올 수 없다. 따라서 Date를 통해 ms(밀리초) 시간을 구하고, Timestamp로 convert 해줘야만 한다.근데 Timestamp는 보통 java안에서만 쓰지는 않고 DB와 연동해서 사용할 때 사용하므로, 뭐.. 다음과 같은 방법을 사용해도 좋다.

String now = "2009-03-20 10:20:30.0"; // 형식을 지켜야 함
java.sql.Timestamp t = java.sql.Timestamp.valueOf(now);

아무튼, 이렇게 현재시간을 출력해온다고 치면 다음과 같다.

이런식으로 현재 시간을 가져올 수 있고..
이제 이 시간을 계산하려면 다음과 같이 사용해주면 끝!

Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.DATE, 3);
ts.setTime(cal.getTime().getTime());
System.out.println(ts);
saveget.setDueDate(ts);

참고로, Calendar의 add 함수는 다음과 같이 사용할 수 있다. 크게 년, 월, 일로만 따져보면

YEAR
MONTH
DATE

정도가 되겠다.

아무튼, 전체 코드는 이렇다.

java.util.Date date = new Date();
long time = date.getTime();
System.out.println("Time in Milliseconds: " + time);
Timestamp ts = new Timestamp(time);
System.out.println("Current Time Stamp: " + ts);
//여기까지가 Date를 Timestamp로 전환하는 과정

//이제 Timestamp에 계산하기, 3일을 더해보자.
Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.DATE, 3);
ts.setTime(cal.getTime().getTime());
System.out.println(ts);
saveget.setDueDate(ts);

결과


 

구독 및 하트는 정보 포스팅 제작에 큰 힘이됩니다♡

728x90
반응형