我创建了一些代码,用于检索当前日期并将其格式化为正确的格式,并且我有第二个日期是字符串。我该如何计算天差。我已经阅读了很多关于如何实现它的帖子。
当前代码:
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)
答案 0 :(得分:3)
您需要使用日期格式化程序将endDate
字符串转换为Date
。然后将date
和新Date
传递给dateComponents
来电。然后访问生成的day
。{/ p>的components
属性
使用日历,而不是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")
}