2012-05-10 2 views
2

Я столкнулся с большой проблемой при сравнении двух NSDate с другим форматом, хотя я новичок в этом.ios: Как сравнить 2 NSdates с различными форматами?

-Какой должен быть наилучший подход к этой проблеме?

1.я попытался преобразовать эти две даты в в одном формате, а затем для сравнения или я должен сначала знать формат этого два дня затем для сравнения

+0

моя одна дата похожа на -2012-05-08 12:01:56 +0000, а другая дата была в -2011-05-09 10: 25: 00.627 Я хочу сравнить даты, подобные этому (верхняя один из них является примером, но мне также нужно иметь дело с другим форматом) –

ответ

2

NSDate не знает ни одно о его формат. Внутренне дата сохраняется без какого-либо формата или региона.

Чтобы сравнить дату, вы можете использовать метод compare:.

if([someDate compare:ortherDate] == NSOrderedDescending){ 
    // someDate later then otherDate; 
} 
+0

, поэтому вы в основном говорите, что я должен сравнить эти две даты, которые преобразуют эти 2 даты в один формат. –

+0

Да, вы всегда должны сравнивать дату, не преобразовывая их. Объект NSDate специально разработан, чтобы упростить работу с датами, не зная, как будет отображаться дата. – rckoenes

0

Что вы подразумеваете под форматом? После инициализации объекта NSDate, вы можете напрямую comapre его с любым другим объектом такого типа, как, что: (при условии, что date1 имеет типа NSDate)

if ([date1 compare:[NSDate date]] == NSOrderedAscending) { 
    ... 
} 

Вы можете увидеть реф здесь (обратите внимание на метод compare): https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdate_Class/Reference/Reference.html

+0

моя одна дата похожа на -2012-05-08 12:01:56 +0000, а другая дата была в -2011-05-09 10: 25: 00.627. Я хочу сказать этот формат. –

+0

Как уже ответил @rckoenes, формат не имеет значения для сравнения, поскольку для этого используется внутреннее значение объектов. – Michael

Смежные вопросы