語境
我有一個將給Stringify Method定Date格式設定Date為String. 結果如下所示:
October 17th, 2022 at 1:27pm
但是,當Dateis或時Today,我想用這個特定的描述替換實際的。結果應如下所示:YesterdayTomorrowDateString
Today at 1:27pm
代碼
extension Date {
func stringify() -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .short
return dateFormatter.string(from: self)
}
}
問題
- 我怎樣才能實作這種行為,因為
DateFormatter不支持它?
uj5u.com熱心網友回復:
正如評論中所建議的,您可以使用DateFormatter它,訣竅是打開doesRelativeDateFormatting flag。
let today = Date()
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: today)!
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)!
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .short
dateFormatter.doesRelativeDateFormatting = true
let todayString = dateFormatter.string(from: today)
print(todayString) // Today at 20:44
let yesterdayString = dateFormatter.string(from: yesterday)
print(yesterdayString) // Yesterday at 20:44
let tomorrowString = dateFormatter.string(from: tomorrow)
print(tomorrowString) // Tomorrow at 20:44
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/517937.html
標籤:IOS迅速代码日期日历
下一篇:帶有雙面影像的多行標簽
