我尝试制作 rss 阅读器,得到的日期格式如下:2019-08-15 13:10:13 +0000,但我想以如下格式显示我的日期 -> 就在最近、今天、昨天和周五,7 月 31 日、2019 等。我知道如何从日期格式化程序中为全天制作一种格式,但如何获得不同的格式?
extension Formatter {
static let iso8601: DateFormatter = {
let formatter = DateFormatter()
formatter.calendar = Calendar(identifier: .iso8601)
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
return formatter
}()
}
extension Date {
var iso8601: String {
return Formatter.iso8601.string(from: self)
}
static let dayMonthYearTimeDateFormatter: DateFormatter = {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.autoupdatingCurrent
dateFormatter.dateFormat = "dd MMMM yyyy, HH:mm" 2018, 12:30"
return dateFormatter
}()
}
最佳答案
您没有分享您的模型,因此我将假设您的 RSS 阅读器“新闻”项目类似于:
struct NewsItem {
let date: Date
}
其中日期
是新闻发布的日期。
您可能会考虑创建和使用 Calendar
对象,因为它旨在进行日历计算。例如
let calendar = formatter.calendar
let newsItem = // ...some previously initialized NewsItem
if calendar.isDateInYesterday(newsItem.date) == true {
// ...code to appropriately assign a string “Yesterday” to wherever you’d like
}
关于swift - 如何获得特定的日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57512879/