我可以从当前日期开始算起15天,但是当我尝试提供自定义日期而不是当前日期时,则无法正常工作。
let date = sharedAppDelegate.dueDate
let givenDate = Utility.convertStringToDate(format: "yyyy-MM-dd",
dateString: date)
let futureDate = (givenDate as NSCalendar).date(byAdding: dateComponents, to: Date()) ?? Date()
第三行给出类似日期的错误?不能转换为NSCalendar。 预期结果:-FutureDate应该是指定日期的下15个日期
答案 0 :(得分:2)
日期不是日历
您可以使用Calendar
对Date
个对象进行计算或比较,在这种情况下,您希望使用日历将x
天数添加到开始日期>
尝试
let startDate = Date()
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: startDate)
print(tomorrow)
输出:
可选(2019-06-01 07:14:48 +0000)
答案 1 :(得分:0)
您可以像这样扩展Date类。
extension Date {
func dateByAddingDays(dateNum:Int) -> Date {
return Calendar.gregorian.date(byAdding: .day, value: dateNum, to: self)!
}
}
现在创建日期对象
let today = Date()
let dayAfterTomorrow = today.dateByAddingDays(dateNum:2)
debugPrint(dayAfterTomorrow)