我已经创建了一些代码来检索当前日期并将其格式化为正确的格式,并且我有第二个日期,它是一个字符串。我如何计算天数差异。我已经阅读了很多帖子,但是对如何实现它感到非常困惑。
当前代码:
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy"
let currentDateFormatted = formatter.string(from: date)
let endDate = "16.05.2018"
我已经尝试了下面的代码,但是我得到了一个错误“没有更多上下文的表达式类型不明确”。
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy"
let currentDateFormatted = formatter.string(from: date)
let endDate = "16.05.2018"
let endDateFormatted= formatter.date(from: endDate)
let calendar = Calendar.current
let components = calendar.dateComponents([.day], from: currentDateFormatted, to: endDateFormatted)
最佳答案
您需要使用日期格式化程序将 endDate
字符串转换为 Date
。然后将 date
和新的 Date
传递给 dateComponents
调用。然后访问生成的 components
的 day
属性。
并使用日历,而不是 NSCalendar。
let startDate = Date()
let endDateString = "16.05.2018"
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy"
if let endDate = formatter.date(from: endDateString) {
let components = Calendar.current.dateComponents([.day], from: startDate, to: endDate)
print("Number of days: \(components.day!)")
} else {
print("\(endDateString) can't be converted to a Date")
}
关于swift - 如何计算两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50379492/