본문 바로가기
자바의 봄(Spring)/프로젝트

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

by 종안이 2024. 4. 6.

# 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. 영화 관련 데이터 처리글 페이징 처리 

댓글