끝을 보는 용기

Spring 본캠프 Day 062 - 1단계 및 2단계 일정 관리 앱 만들기 중, toLocalDateTime(), toLocalDate(), getTimestamp()

writingforever162 2024. 12. 7. 23:45

늦게까지 실컷 자고 어기적거리며 일어났다. 천천히 자바(Java) 문제를 한 개 푼 다음에 경건한 마음으로 MySQL 데이터베이스(database) 연동 작업에 돌입했다. 주말이라 문제가 생기면 답을 구할 방법이 평일보다 마땅치 않았기 때문에 저번에 완강한 6주 차 강의를 다시 켜서 천천히 작업했다. 빨간 줄이 쭉쭉 생길 때마다 심장이 흔들다리를 건너듯 철렁거렸지만, 영어를 아주 어려워하지 않는단 장점을 떠올리며 챗GPT에도 물어보고 나름대로 문서를 찾아 읽으며 끝을 향해 달리는 중이다.

챗GPT의 도움을 받아 문제를 해결했을 때 문득, 챗GPT도 좋은 도구이자 친구이며 잘 쓰는 능력 또한 역량 중 하나라는 튜터님의 말씀이 떠올랐다. 여기서 이런 생각이 함께 들었다. 문제를 해결했다고 넘어가면 챗GPT에 도움을 구한 사람이 아닌 의존한 사람이 되는 게 아닌가? 그런 이유로 오늘의 TIL에는 이번에 사용한 메서드(method)가 뭔지 나름대로 알아본 내용을 적기로 했다. 내일은 다시 원래 보낸 일상처럼 부지런히 보내야겠다.

 

1. toLocalDateTime()

public LocalDateTime toLocalDateTime() {
    return LocalDateTime.of(getYear() + 1900,
                            getMonth() + 1,
                            getDate(),
                            getHours(),
                            getMinutes(),
                            getSeconds(),
                            getNanos());
}

ⓐ Timestamp 객체를 LocalDateTime 객체로 변환한다.

▶ Converts this Timestamp object to a LocalDateTime.

 

Timestamp 객체 안에 있는 년도, 월, 일, 시간, 분, 초, 나노초 데이터를 지역 시간대(Local Time Zone)에 맞는 LocalDateTime 객체로 변환하여 동일한 날짜-시간 값을 표현한다.

▶ The conversion creates a LocalDateTime that represents the same year, month, day of month, hours, minutes, seconds and nanos date-time value as this Timestamp in the local time zone.

 

ⓒ Timestamp 객체와 동일한 날짜-시간 값을 표현하는 LocalDateTime 객체를 반환한다.

▶ Returns: LocalDateTime object representing the same date-time value

 

ⓓ Java 1.8 버전부터 사용할 수 있다. 

▶ Since: 1.8

 

2. toLocalDate()

public LocalDate toLocalDate() {
    return LocalDate.of(getYear() + 1900, getMonth() + 1, getDate());
}

ⓐ Date 객체 안에 있는 년도, 월, 일 데이터로 LocalDate 객체를 생성한다.

▶ Creates a LocalDate instance using the year, month and day from this Date object.

 

ⓑ 동일한 날짜 값을 표현하는 LocalDate 객체를 반환한다.

▶ Returns: a LocalDate object representing the same date value

 

ⓒ Java 1.8 버전부터 사용할 수 있다. 
▶ Since: 1.8

 

3. java.sql.Timestamp getTimestamp(String columnLabel) throws SQLException;

ⓐ ResultSet 객체의 현재 행에서 지정된 열(column)의 값을 java.sql.Timestamp 객체로 가져온다.

Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.

 

ⓑ 매개변수는 SQL 쿼리에서 AS 절로 지정된 열의 라벨(Label)인 columnLabel이다. 만약 AS 절이 없다면 라벨 이름은 열의 이름을 따른다. 

▶ Params: columnLabel – the label for the column specified with the SQL AS clause. If the SQL AS clause was not specified, then the label is the name of the column

 

ⓒ 열의 값을 반환하며, 만약 값이 SQL NULL이면 null을 반환한다. 
▶ Returns: the column value; if the value is SQL NULL, the value returned is null

 

ⓓ columnLabel이 유효하지 않거나 데이터베이스 접근에 오류가 발생하거나, 닫힌 ResultSet에 해당 메서드가 호출되면 SQLException이 발생한다. 

Throws: SQLException – if the columnLabel is not valid; if a database access error occurs or this method is called on a closed result set