Java/Spring

[Spring] LocalDateTime 형식의 데이터를 @JsonFormat, @DateTimeFormat어노테이션을 적용하여 데이터 주고받기

SeungbeomKim 2023. 5. 10. 23:42

팀플을 하던 도중 DB에서 데이터를 주고받는 경우 날짜 형식이 Array 형식인데, String으로 바꿀 수 없냐는 프론트측에서 질문을 받았습니다. 그래서 LocalDateTime을 String으로 어떻게 바꾸면 좋을지 생각하던 구글링 하던 도중 좋은 포스팅을 발견했습니다. 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=varkiry05&logNo=221736856257

 

[spring] LocalDateTime 주고받기(Response, Request)

데이터베이스에서 날짜데이터를 로드할 때 날짜형식의 String 형태으로 구성하여 전달하는 경우가 있다. (...

blog.naver.com

Response에서는 클라이언트 측의 요청에 대한 서버 측 응답이므로 LocalDateTime을 String 형식으로 바꿔주고,(@JsonFormat 적용)

Request는 클라이언트 측에서 서버 측에 대한 요청이므로 LocalDateTime 형식을 날짜 형식(yyyy-MM-dd'T'mm:ss)으로 바꿔주어야 합니다.(@DateTimeFormat 적용)

 

응답값과 요청값에 대해 기존 Array 배열에서 String형식, LocalDatetime의 지정된 형식으로 깔끔하게 바꿔줄 수 있었습니다.

Request (@DataTimeFormat 적용)

{
    "success": true,
    "code": 0,
    "result": {
        "data": {
            "category": "아이돌봄",
            "ticketName": "말썽구러기랑 놀기",
            "sellerNickname": "노진구4567",
            "address": "서울특별시 서초구",
            "startDate": "2023-05-04T10:00",
            "endDate": "2023-05-04T12:00",
            "detailsContent": "돌봐주시고 책을 읽어주세요.",
            "price": 1500000,
            "precaution": "여리니까 잘 부탁드립니다."
        }
    }
}

Response (@JsonFormat 적용)

{
    "success": true,
    "code": 0,
    "result": {
        "data": {
            "matches": [
                {
                    "category": "아이돌봄",
                    "ticketName": "말썽구러기랑 놀기",
                    "sellerNickname": "노진구4567",
                    "address": "서울특별시 서초구",
                    "startDate": "2023-05-04T10:00",
                    "endDate": "2023-05-04T12:00",
                    "detailsContent": "돌봐주시고 책을 읽어주세요.",
                    "price": 1500000,
                    "precaution": "여리니까 잘 부탁드립니다."
                }
}