问题描述
我正在研究 iOS Swift 项目。我正在从服务器获取日期字符串,但我必须仅显示它是今天还是昨天或其他日期。
所以,我正在处理 timeIntervalSinceNow
属性并尝试关注。
static func getDay(_ NowDay: String) -> String {
let dateString = "2021-02-09"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let journalDate = dateFormatter.date(from: dateString)!
let diff: TimeInterval = (journalDate.timeIntervalSinceNow ?? 0.0) * -1.0
if diff < 1 {
return "Today"
} else if diff < 2 {
return "Yesterday"
} else {
return NowDay
}
return NowDay
}
但是,它只返回日期,而不是转换为今天或昨天。
有什么建议吗?
解决方法
我已通过以下方式解决了我的问题
static func getDay(_ nowDay: String) -> String {
let dateString = "2021-02-09"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let journalDate = dateFormatter.date(from: nowDay)
if let convertedDate = journalDate {
let relativeDateFormatter = DateFormatter()
relativeDateFormatter.timeStyle = .none
relativeDateFormatter.dateStyle = .medium
relativeDateFormatter.locale = Locale(identifier: "en_GB")
relativeDateFormatter.doesRelativeDateFormatting = true
let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "yyyy-MM-dd"
return relativeDateFormatter.string(from: convertedDate)
}
return ""
}