Timestamp를 String으로 변환

이세진·2022년 6월 24일
0

iOS

목록 보기
33/46
post-custom-banner

생성일: 2022년 2월 27일 오후 10:01

Notification이나 post 등 데이터가 언제 적성 또는 도착했는지를 보여주기 위해 Firebase의 Timestamp를 이용하여 DB에 기록하였다.

이를 활용하여 Timestamp를 사용자가 이해할만한 String으로 변환하여 화면에 띄워주도록 하자

struct NotificationViewModel {
	...생략...
	var timestampString: String? {
        let formatter = DateComponentsFormatter()
        formatter.allowedUnits = [.second, .minute, .hour, .day, .weekOfMonth]
        formatter.maximumUnitCount = 1
        formatter.unitsStyle = .abbreviated
        return formatter.string(from: notification.timestamp.dateValue(), to: Date())
    }
}

DateComponentsFormatter()를 활용하여 Firebase의 Timestamp를 String으로 캐스팅한다.

allowedUnits 은 사용할 날짜 단위를 지정해준다.

maximumUnitCount은 앞서 설정한 날짜 단위 중 가장 알맞은 단위로 몇가지를 사용할 것인지 설정한다.

unitsStyle 은 어떠한 형식으로 날짜를 나타낼 것인지 설정한다.

해당 설정들을 거친 후 formatter를 이용하여 timestamp.dateValue()를 String으로 캐스팅한다.

실행 화면

위에서 만든 문자열을 사용하면 동그라미 구역 내의 형식처럼 “n일 전" 또는 “n주 전"과 같이 얼마나 기간이 지났는지를 확인할 수 있다.

profile
나중은 결코 오지 않는다.
post-custom-banner

0개의 댓글