/ / Порівняння двох дат (поточна дата та дата з бази даних) - sql, aim-c, nsdate

Порівняння двох дат (поточна дата та дата з бази даних) - sql, objective-c, nsdate

Я намагаюся порівняти дві дати: одна з бази даних, а інша - поточна дата системи. Дата з бази даних розбирається на рядок, і я хочу перетворити її на NSDate . проблема, з якою вони стикаються, полягає в тому NewsDate є nil.

  -(void)viewDidLoad
{

// Do any additional setup after loading the view.
self.title=self.ntitle;
_lblDate.text=self.ndateNews;
_lblDetail.text=self.ndetails;
_lblTitre.text=self.title;
NSDate *currDate=[NSDate date];
NSDateFormatter *DateFormats=[[NSDateFormatter alloc ]init];
[DateFormats setDateFormat:@"MM-DD-yyyy hh:mm:ss +EEEE"];
NSLog(@"selected date  %@",self.ndateNews);
NSDate *NewsDate=[DateFormats dateFromString:self.ndateNews];
NSLog(@"string transformed   into date %@",NewsDate);
NSLog(@" system date %@",currDate);



if ([currDate isEqualToDate:NewsDate]){

_lblDate.text=@"today";

}

}

Відповіді:

1 для відповіді № 1

Ви використовуєте неправильну схему формату дати див. цю сторінку для отримання інформації.

yyyy-MM-dd"T"HH:mm:ssZZZZZ

Це те, що потрібно для формату вашої дати.

Також якщо ви хочете це перевірити NewsDate сьогодні ви повинні використовувати:

BOOL today = [[NSCalendar currentCalendar] isDateInToday:NewsDate];

Перевірка, чи дата відповідає рівній NSDate date Я б сказав, що дати повинні відповідати точно - до мілісекунди!

Зауважте, що -isDateInToday: є тільки iOS 7. Залиште мені коментар, якщо ви хочете також версії, яка працює для iOS 6 :)