자바의 봄(Spring)/프로젝트

SpringBoot-Movie-Thymeleaf-Project - LocalDateTime 으로 시간 포맷 변경하기

종안이 2024. 4. 6. 23:52

# 1. 시간 표시 변경하기 

 

시간 표시가 너무 날(?) 것 그대로의 모습을 가지고 있어서 이번에 변경해보려고 한다. 

현재 상태는 아래와 같이 되어있다. 

 

 

이것을 YYYY-MM-DD HH:MM:SS 형태로 조금 더 깔끔하게 변경하려고 한다. 

 

검색해보니까 Java 1.8 이전에는 Date 라는 클래스를 사용했는데 , 1.8이 되면서 Date 라는 클래스에서는 많은 메서드들이 @Deprecated 처리되고 LocalDateTime 이라는 클래스가 도입되었다고 해서 그것으로 검색해서 변경해보려고 한다. 

 

우선 테스트 클래스를 작성한다. 

@Test
@DisplayName("LocalDateTime 객체 원하는 형태로 변경하기")
public void testTime() {
    String customizerFormat = "YYYY년-MM월-DD일 HH시:MM분:SS초";

    /*
    * author: LeeJongAnn
    * description: Changes the class of LocalDateTime at the current time to the pattern of the cutomizer.
    * */
    LocalDateTime now = LocalDateTime.now();
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(customizerFormat);
    String format = now.format(dateTimeFormatter);
    System.out.println(format);

}

 

돌려보면 아래와 같이 나온다.

 

 

그러면 이제 이것을 적용해보자 아래는 boardServiceImple 클래스이다. 이곳에 changeTimeFormatNow라는 메소드를 통해서 시간을 변경해줄 수 있도록 하였다.  그리고 createBoard 메소드에서 이것을 집어넣어 주었다.

 

package com.spring.MovieProject.service.board;


import com.spring.MovieProject.config.DetailsUser;
import com.spring.MovieProject.entity.Board;
import com.spring.MovieProject.entity.User;
import com.spring.MovieProject.repository.BoardRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;

@Service
public class BoardServiceImpl implements boardService {



    private BoardRepository boardRepository;

    @Autowired
    public BoardServiceImpl(BoardRepository boardRepository) {
        this.boardRepository = boardRepository;
    }

    @Override
    public Board createBoard(Board board, DetailsUser user) {

        board.setCreationTime(changeTimeFormatNow());
        Board saveBoard = boardRepository.save(board);
        return saveBoard;
    }

    @Override
    public List<Board> getBoardList() {
        List<Board> boardList = (List<Board>) boardRepository.findAll();
        return boardList;
    }

    @Override
    public Board updateBoard() {
        return null;
    }

    @Override
    public void deleteBoard() {

    }

    @Override
    public Board getBoard() {
        return null;
    }

    /*
     * author: LeeJongAnn
     * description: Changes the class of LocalDateTime at the current time to the pattern of the cutomizer.
     * */
    public String changeTimeFormatNow() {

        String customizerFormat = "yyyy년 MM월 dd일 HH시 mm분 ss초";
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(customizerFormat);
        String format = now.format(dateTimeFormatter);

        return format;
    }
}

 

성공적으로 시간 형태가 변경되어 있는 것을 확인할 수 있다.

위에 있는 것보다 훨씬 깔끔한 형태이다. 

 

앞으로 만들 내용은 아래와 같다. 

 

1. 게시글 상세 조회 페이지

2. 사용자 리스트에서 해당 유저 편집

3. 게시글 삭제  

4. 영화 관련 데이터 처리글 페이징 처리