🚪 String Type을 Long Type에 넣을 수 없다
날짜 포멧은 무조건 YYYY-MM-DD hh:mm:ss로 나와야한다 String Type
날짜를 생성하는 방법 2가지
1. FE moment.format() (String)
2.BE new Date() + SimpleDateFormat (String)
String을 Long에다가 넣는것은 불가능
🗝 시도 1
TimeStamp를 이용해서 Long으로 저장해서 Service 단에서 String으로 변환하는 작업 수행
BE 단에서 처리하기 보다 FE 단에서 처리해야 간편할거 같다
💡 시도2 해결
FE에서 TimeStamp를 이용해서 BE로 넘길때 Long으로 반환 DTO Entitiy를 넘어가서 Date로 저장
다시 DTO로 Long으로 반환
FE에서 TimeStamp 및 date처리 방식을 통해 원하는 포멧 출력
/** TimeStamp UINX 방식으로 초단위까지 Long 생성 */
const datetime = Math.floor(new Date().getTime() / 1000.0),
// Long을 Date 타입으로 변환
timeStampFormat = (date) => {
return this.getFormatDate(new Date(date * 1000));
}
// Date을 원하는 포멧으로 변환 'YYYY-MM-DD hh:mm:ss'
getFormatDate = (date) => {
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minute = date.getMinutes();
let second = date.getSeconds();
month = month >= 10 ? month : `0${month}`;
day = day >= 10 ? day : `0${day}`;
hour = hour >= 10 ? hour : `0${hour}`;
minute = minute >= 10 ? minute : `0${minute}`;
second = second >= 10 ? second : `0${second}`;
return `${date.getFullYear()}-${month}-${day} ${hour}:${minute}:${second}`;
}
const useDatetime = this.timeStampFormat(datatime);
💪 출처 및 도움주신분들
getFormatDate를 참고했는데 블로그를 까먹음..