반응형

LocalDateTime 기본으로 적용되는 날짜표시 포맷

2021-07-06T14:32:27.002333

저 T는 날짜 뒤에 시간이 온다는 것을 알려주는 ISO 날짜 형식이라고 함..

저 T를 포함한.. 밀리세컨드등이 너무 거슬려서... LocalDateTime format을 바꾸려고 함..

 


LocalDateTime의 format을 지정해주는 기본 형식

String dateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));

 


  • BaseTimeEntity 원래 코드
import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {

    @CreatedDate
    private LocalDateTime createdDate;

    @LastModifiedDate
    private LocalDateTime modifiedDate;
}
  • DB 컬럼 Data Type : DATETIME

 

 

변수에 바로 대입해봤는데..

@CreatedDate
private String createdDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));

@LastModifiedDate
private String modifiedDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));
  • DB 컬럼 Data Type : VARCHAR 으로 변경

 

기존에 나오던 거랑은 다른데 내가 넣은 형식이 적용이 안 되고 

마음대로 이렇게 나와버려.. 정말웃겨 ...

21. 7. 6. 오후 4:08

 


Entity Listen을 이용한 BaseTimeEntity 코드

아래와 같이 Entity Listener를  사용하니 원하는 날짜값이 원하는 형식대로 적용되었다.

  • DB 컬럼 Data Type : VARCHAR
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {


    @CreatedDate
    private String createdDate;

    @LastModifiedDate
    private String modifiedDate;

    @PrePersist
    public void onPrePersist(){
        this.createdDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));
        this.modifiedDate = this.createdDate;
    }

    @PreUpdate
    public void onPreUpdate(){
    this.modifiedDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));
    }

}

 

  • @PrePersist : 엔티티 insert 이전 실행
  • @PreUpdate : 엔티티 update 이전 실행

 


ISO 날짜 형식 참고

 

[ISO] ISO 8601 개념

ISO 날짜 형식이란? 정식 명칭 Date elements and interchange formats - Information interchange - Representation of dates and times 미쳤다.. 현재 제일 최신 버전 ISO 8601 구버전 IS..

java119.tistory.com

 

format 변경 참고

 

JPA 생성 일시 , 변경 일시 format 변경 하는 부분 정리

Auditing을 이용해서 공통으로 등록일과 수정일을 가져와 사용하는 형태로 만들면서 DB 쪽 설계가 char(14) 형태로 나왔다. 이 부분에 대해 얘기를 하였으나 기존 시스템과의 연계 때문에 어쩔수 없

kimseungjae.tistory.com

 

Entity Listener 참고

 

데이터 변경 알림 - @EntityListeners

spring 의 data-jpa 사용시 데이터 변경시 알림을 받는 방법이 있다. EntityListener 클래스를 만들고 public class DataDtoListener { @PostLoad public void postLoad(DataDto dto) { log.info("post load: {}",..

erim1005.tistory.com

 

반응형

+ Recent posts