如何创建过去的新 NSDate 对象,例如比另一个日期早 1 秒?
Posted
技术标签:
【中文标题】如何创建过去的新 NSDate 对象,例如比另一个日期早 1 秒?【英文标题】:How do I create a new NSDate object that is in the past, e.g. 1 second earlier than another date? 【发布时间】:2015-01-31 14:13:11 【问题描述】:这就是我设置未来日期的方式:
var comp = NSDateComponents()
comp.setValue(1, forComponent: NSCalendarUnit.CalendarUnitMonth);
let date: NSDate = NSDate()
var expirationDate = NSCalendar.currentCalendar().dateByAddingComponents(comp, toDate: date, options: NSCalendarOptions(0))
现在,如果我有 dateA 并想创建一个比 dateA 早 1 秒的新日期 (dateB),该怎么办。
【问题讨论】:
减去一秒,您可以简单地执行let dateB = dateA.dateByAddingTimeInterval(-1)
。 – 对于天和更大的单位,NSDateComponents
和 NSCalendar
是正确的选择。
【参考方案1】:
您可以通过将第二行从
1 to -1
和 NSCalendarUnitMonth to Second
更改来实现此目的
var comp = DateComponents()
comp.setValue(-1, for: .second)
let date = Date()
let expirationDate = NSCalendar.current.date(byAdding: comp, to: date)
希望对你有所帮助。
【讨论】:
哦,我认为这行不通,所以没有尝试。我现在就试一试。 提前 1 秒,所以 NSCalendarUnit.CalendarUnitMonth 应该是 NSCalendarUnit.CalendarUnitSecond以上是关于如何创建过去的新 NSDate 对象,例如比另一个日期早 1 秒?的主要内容,如果未能解决你的问题,请参考以下文章