2015-01-31 1 views
0

Так вот как я установил будущую дату:Как создать новый объект NSDate, который был в прошлом, например. На 1 секунду раньше другой даты?

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 и хотите создать новую дату (dateB), что 1 второй раньше dateA.

+1

Чтобы вычесть один * второй *, вы можете просто сделать let letB = dateA.dateByAddingTimeInterval (-1) '. - Для дней и более крупных единиц «NSDateComponents» и «NSCalendar» - правильный путь. –

ответ

3

Вы можете достичь этого, изменив вторую линию от 1 до -1, как этого

var comp = NSDateComponents() 
comp.setValue(-1, forComponent: NSCalendarUnit. CalendarUnitSecond); 
let date: NSDate = NSDate() 
var expirationDate = NSCalendar.currentCalendar().dateByAddingComponents(comp, toDate: date, options: NSCalendarOptions(0)) 

Надеется, что это поможет.

+0

О, я думал, что это не сработает, поэтому не пробовал. Сейчас я попробую. – LondonGuy

+1

1 секунда раньше, так что NSCalendarUnit.CalendarUnitMonth должен быть NSCalendarUnit.CalendarUnitSecond –

+0

спасибо, что исправил меня –