Reputation: 2200
Why the following code prints me "Tomorrow" and not "In 2 days"?
let dateString = "2022-05-21"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: dateString)!
print(date)
print(Calendar.current.dateComponents([.day, .month, .year], from:date))
let relativeDateTimeFormatter = RelativeDateTimeFormatter()
relativeDateTimeFormatter.dateTimeStyle = .named
relativeDateTimeFormatter.formattingContext = .beginningOfSentence
let now = Date() // Today is 2022-05-19
print(now)
let dateComponents = Calendar.current.dateComponents([.year, .month, .day], from: now, to: date)
print(dateComponents)
print(relativeDateTimeFormatter.localizedString(from: dateComponents))
The full console log is
2022-05-20 22:00:00 +0000
year: 2022 month: 5 day: 21 isLeapMonth: false
2022-05-19 15:44:00 +0000
year: 0 month: 0 day: 1 isLeapMonth: false
Tomorrow
Upvotes: 0
Views: 37