将 String 转换为 NSDate 但仍无法访问 dateByAddingTimeInterval 方法

Convert String to NSDate but still not accessing dateByAddingTimeInterval method

   @IBAction func onDateChanged(sender: AnyObject) {
    let dateFormatter = NSDateFormatter()
    
   // dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
    dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
    
    let strDate = dateFormatter.stringFromDate(datePicker.date)
    
    let timeinterval = NSTimeInterval.abs(17 * 60) //time in seconds
    let newDate = strDate.dateByAddingTimeInterval(-timeinterval)
    // ERROR =- on the above line I get an error saying that type String does not have a method called dateByAddingTimeInterval, however I made the string a NSDate value in the variable newDate.

    
    print("\(strDate) is the date on the datePicker @")
}

如您所见,我在第 7 行中明确地将日期选择器的字符串值转换为 NSDate,但它仍然不让我使用 dateByAddingTimeInterval 方法,因为它仍然认为它是一个字符串。

看起来你做的与你认为的相反。 dateFormatter.stringFromDate(datePicker.date)NSDate 转换为 String。如果这是您的意图,您应该将时间间隔添加到日期,然后再将其转换为 String。像这样。

let timeinterval = NSTimeInterval.abs(17 * 60) //time in seconds
let newDate = datePicker.date.dateByAddingTimeInterval(-timeinterval)
let strDate = dateFormatter.stringFromDate(newDate)
print("\(strDate) is the date on the datePicker @")