Database

java.sql.Timestamp 총정리! (자바, 자바스크립트) (미완성)

계피러버 2023. 4. 9. 03:59

자바

java.sql.Timestamp

SQL의 TIMESTAMP 에 대응하므로 DB와 TIMESTAMP 형식의 데이터를 주고 받을 때 유용

Timestamp 의 생성자는 매개변수로 밀리초 시간 값을 받음

형식은 yyyy-MM-dd HH:mm:ss

 

 

● 현재 시간을 Timestamp 형식으로 표현하기

1. 현재시간을 밀리초로 구한다.

2. 밀리초 값을 Timestamp 의 매개변수로 받는다.

 

java.util.Date 클래스의 .getTime() 이용하여 밀리초 구하기 

Date date = new Date();
long time = date.getTime();
System.out.println("데이트객체.getTime() : " + time); 
// 데이트객체.getTime() : 1680973401285

Timestamp currentTimestamp1 = new Timestamp(time);
System.out.println(currentTimestmap1);
//2023-04-09 03:28:05.357

 

System.currentTimeMillis() 를 이용하여 밀리초 구하기

Timstamp currentTimestamp2 = new Timestamp(System.currentTimeMillis());
System.out.println(currentTimestamp2);
//2023-04-09 03:28:05.4

 

 

● Timestamp 와 String 변환하기

Timestamp -> String

java.text.SimpleDateFormat 이용

Timestamp ts = new Timestamp(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초");
String TimestampStr = sdf.format(ts);
System.out.println("Timestamp -> String : " + timestampStr);
// Timestamp -> String : 2023년 04월 09일 03시 28븐 05초

 

String -> Timestamp

1. 문자열이 Timestamp 형식(yyyy-MM-dd HH:mm:ss)과 일치할 경우

Timestamp.valueOf(문자열) 이용 

String now = "2023-04-09 02:36:30.0";
Timestamp ts = Timestamp.valueOf(now);
System.out.println(ts);

 

2. 문자열이 Timestamp 형식과 일치하지 않을 경우

java.util.Date, java.text.SimpleDateFormat, java.text.ParseException 이용

SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초");
sdf.setLenient(false);//날짜와 시간을 엄격히 확인한다는 뜻. (lenient "느슨한")

try {
    //2. String을 Date로 변환
    Date strToDate = sdf.parse(timestampStr);
    //3. Date를 Timestamp로 변환 (밀리초로 getTime() 해서)
    java.sql.Timestamp dateToTimestamp = new java.sql.Timestamp(strToDate.getTime()); 
    System.out.println("String -> Timestamp : " + dateToTimestamp);
}catch (ParseException e) {
    e.printStackTrace();
}

 

 

Timestamp를 Calendar로 가공하기

java.util.Calendar

Calendar 는 추상클래스이기 때문에 직접 객체를 생성할 수 없으므로 .getInstance() 로 객체를 얻어야 함

Calendar cal = Calendar.getInstance()

Calendar의 .add()함수 사용법
YEAR 년 / MONTH 월 / DATE 일 

cal.add(Calendar.YEAR, 3);  // +3년

 

Calendar 클래스로 Timestamp 값에 +3일

 

Timestamp ts = new Timestamp(System.currentTimeMillis());

Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.DATE, 3);

ts.setTime(cal.getTime().getTime()); // Date 형식 값 얻고, 밀리초 얻고
System.out.println(ts);

 

 

LocalDateTime 과 Timstamp

java.time.LocalDateTime

형식은 yyyy-MM-ddTHH:mm:ss

 

LocalDateTime 을 Timestamp 로 변환

Timestamp.valueOf(LocalDateTime 값);

LocalDateTime currentLdt = LocalDateTime.now();
Timestamp ldtToTs = Timestamp.valueOf(currentLdt);
System.out.println(ldtToTs); //2023-04-09 03:15:45.7896283

Timestamp 를 LocalDateTime으로 변환

.toLocalDateTime() 이용

Timestamp ts = new Timestamp();
ts.toLocalDateTime();
System.out.println(ldtToTs.toLocalDateTime()); //2023-04-09T03:17:48.120906500

 

 

 

더 참고하기 좋은 사이트들

https://www.delftstack.com/ko/howto/java/java-get-current-timestamp/

 

 

 

 

 


 

자바스크립트

 

String -> Timestamp

https://www.delftstack.com/ko/howto/java/java-get-current-timestamp/

 

Java 날짜로 현재 타임 스탬프 가져 오기

이 게시물은 Java Date에서 현재 타임 스탬프를 얻는 방법을 소개합니다.

www.delftstack.com

 

https://cinnamonlover.tistory.com/entry/%EC%9E%90%EB%B0%94-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC%EC%97%90%EC%84%9C-%EB%B0%9B%EC%9D%80-Timestamp%EC%9D%98-date-format-%EB%B3%80%ED%99%98-%ED%8E%8C

 

자바 컨트롤러에서 받은 Timestamp의 date format 변환 (펌)

Timestamp 형식의 날짜 데이터를 바로 input type="datetime-local" 에 집어넣었더니 오류 뜸 //deadline 은 document.getElement('datetime-local 타입 input의 id'); deadline.value = product.prod_sell_deadline; prod_detail_write.js:60 The s

cinnamonlover.tistory.com