(프로젝트) – SwiftUI 날짜를 문자열로, DateFormatter 관련 이미지

(프로젝트) – SwiftUI 날짜를 문자열로, DateFormatter

나는 오랫동안 글을 쓰지 않았습니다.

오늘은 개인 프로젝트를 진행하면서 발생한 문제에 대한 해결 방법을 포스팅하려고 합니다. 알잘까 좋아해서 본론으로 들어가겠습니다.

출시 날짜가 잘못 표시됨


– SwiftUI 날짜를 문자열로, DateFormatter 관련 대표 이미지
화면에 표시되는 날짜

– SwiftUI 날짜를 문자열로, DateFormatter 관련 이미지

API에서 받은 문자열은 이렇게 출력되는데 Date()가 문자열로 출력되면 뭔가 잘못된 것이므로 DateFormat이 잘못된 것은 아닌지 확인한다. 하지만 육안으로 보기에는 큰 문제가 없어 보이지만…

func StringToDate(stringDate:String) -> Date{
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-mm-dd'T'hh:mm:ss"  //"2023-03-04T05:34:50"
        dateFormatter.locale = Locale(identifier: "ko_KR")
        dateFormatter.timeZone = TimeZone(abbreviation: "KST")
        //print(dateFormatter.date(from: stringDate)?.addingTimeInterval(32400) ?? Date())
        return dateFormatter.date(from: stringDate)?.addingTimeInterval(32400) ?? Date()
    }

여기

dateFormatter.dateFormat = "yyyy-mm-dd'T'hh:mm:ss"
//월 출력 부분이 대문자 MM이 아닌 mm으로 되어있음

무슨 멍청한 짓이냐며 대문자와 소문자를 구분한 이유를 생각하지 못했는데… 물론 그런 사소한 일이 전혀 다른 결과를 낳을 수 있다는 걸 몰랐기 때문에 부주의했다.

코드에서 part.addingTimeInterval(32400) ?? Date() 이 부분이 추가되는데 시간 자체는 UTC 기준이므로 출력하면 9시간 전이다. 피드를 보시면 상대적인 시간으로 작성되어 있어서 시간이 다른 것을 알 수 있습니다. 그래서 9시간을 추가해서 사용하기로 했습니다.

Similar Posts