생성일: 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주 전"과 같이 얼마나 기간이 지났는지를 확인할 수 있다.