Dev*_*ali 2 cocoa-touch nsdate ios
我正在构建一个应用程序,要求我显示时间和日期,即星期日(如果对象是在 24 小时之前创建的)等。就像 iOS 中的消息和邮件应用程序会显示 24 小时的时间,然后将其更改为显示“星期一”等日期,星期二......”。我正在寻找是否可以找到任何完全像这样的框架,或者我是否必须为此编写代码?
以下是如何使用 Swift 4 和 5 本地完成这一切:
extension Date {
func formatRelativeString() -> String {
let dateFormatter = DateFormatter()
let calendar = Calendar(identifier: .gregorian)
dateFormatter.doesRelativeDateFormatting = true
if calendar.isDateInToday(self) {
dateFormatter.timeStyle = .short
dateFormatter.dateStyle = .none
} else if calendar.isDateInYesterday(self){
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .medium
} else if calendar.compare(Date(), to: self, toGranularity: .weekOfYear) == .orderedSame {
let weekday = calendar.dateComponents([.weekday], from: self).weekday ?? 0
return dateFormatter.weekdaySymbols[weekday-1]
} else {
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .short
}
return dateFormatter.string(from: self)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |