문서
https://www.devkuma.com/docs/java/timestamp/
Java 날짜 - java.sql.Timestamp 클래스
자바의 Timestamp에 설명, Timestamp를 String으로 변환, String을 Timestamp로 변환
www.devkuma.com
Java 날짜 - java.sql.Timestamp 클래스
Timestamp 클래스
java.sql.Timestamp는 SQL의 TIMESTAMP 타입에 대응하기 위해 만들어 졌다. Timestamp 클래스로 날짜, 시간과 관련한 데이터의 조작을 행하는 경우에 이용한다.
Timestamp를 java.util.Date 클래스를 상속 받은 서브 클래스이다.
Timestamp 이해
Timestamp의 생성자는 밀리초의 시간 값을 지정한다.
System 클래스의 currentTimeMillis() 메소드를 사용하면, 밀리세컨드로 표현되는 현재 시간을 돌려주므로, 이것을 사용해 보자.
실행 결과:
2022-12-12 08:03:15.759
Timestamp <-> String 변환
Timestamp를 String으로 변환
Timestamp를 String으로 변환하려면, 날짜와 시간 형식으로 익숙한 SimpleDateFormat 클래스를 사용한다.
Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
// Timestamp to String
String currentTimestampToString = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(currentTimestamp);
System.out.println(currentTimestampToString);
실행 결과:
2022/12/12 08:03:15
Timestamp가 2022/12/12 08:03:15와 같은 String으로 변환되었다.
String을 Timestamp로 변환
이번에는 반대로 String에서 Timestamp로 변환해 보겠다.
우선은 String에서 java.util.Date 클래스로 변환해야 한다. 변환된 Date 클래스에서 getTime()로 밀리세컨드를 변환해서 이 값을 Timestamp 생성자에 넣으면 변환이 된다.
String currentTimestampToString = "2022/12/12 08:03:15";
// String to Timestamp
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
dateFormat.setLenient(false);// 날짜와 시간을 엄격하게 확인
try {
Date stringToDate = dateFormat.parse(currentTimestampToString);
Timestamp stringToTimestamp = new Timestamp(stringToDate.getTime());
System.out.println(stringToTimestamp);
} catch (ParseException e) {
e.printStackTrace();
}
실행 결과:
2022-12-12 08:03:15.0
이렇게 생성된 Timestamp 를 데이터베이스에 저장하는데 사용할 수 있게 된다.
변환 전체 코드
위에서 작성한 코드에 전체는 아래와 같다.
package com.devkuma.basic.datetime;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimestampConverter {
public static void main(String[] args) {
Timestamp currentTimestamp = new Timestamp(System.currentTimeMillis());
System.out.println(currentTimestamp);
// Timestamp to String
String currentTimestampToString = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(currentTimestamp);
System.out.println(currentTimestampToString);
// String to Timestamp
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
dateFormat.setLenient(false);// 날짜와 시간을 엄격하게 확인
try {
Date stringToDate = dateFormat.parse(currentTimestampToString);
Timestamp stringToTimestamp = new Timestamp(stringToDate.getTime());
System.out.println(stringToTimestamp);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Timestamp 대신에 LocalDateTime
Java 8에서는 Date, Calendar 클래스의 대체로서, Instant, LocalDateTime, ZonedDateTime이 도입되었다.
그 중에서도 LocalDateTime은 “타임 존 없음의 일시"로 불변의 일자/시간 객체 객체로 데이터베이스와의 관련할 수 있다.
'JAVA' 카테고리의 다른 글
디자인 패턴 - 싱글톤 패턴 (Singleton Pattern) (0) | 2024.02.07 |
---|---|
Java - 디자인 패턴 개념의 이해 (0) | 2024.02.07 |
Java - Thread ( Thread 클래스 이용 ) (0) | 2023.10.02 |
Java - Thread ( Runnable 인터페이스 이용 ) (0) | 2023.10.02 |
Java - Thread (0) | 2023.10.02 |