Проблема в получении нужного времени - PullRequest
1 голос
/ 27 июня 2011

Я не могу получить правильное время от данного времени.Мой код выглядит следующим образом:

NSArray * array_TimeSlotWith_StartDate = [ @"01/05/2010 10:15:33" componentsSeparatedByString:@" "];
NSArray * array_TimeSlotWith_EndDate = [ @"01/05/2010 10:45:43"   componentsSeparatedByString:@" "];

NSLog(@" array_TimeSlotWith_StartDate  ===   %@",array_TimeSlotWith_StartDate);
NSLog(@"array_TimeSlotWith_EndDate     ==       %@",array_TimeSlotWith_EndDate);

NSArray * Array_StartTime = [[array_TimeSlotWith_StartDate objectAtIndex:1] componentsSeparatedByString:@":"];
NSLog(@"Array_StartTime     ==       %@",Array_StartTime);

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"HH:mm:ss"];
NSDate *date1 = [df dateFromString:[array_TimeSlotWith_StartDate objectAtIndex:1]];
NSDate *date2 = [df dateFromString:[array_TimeSlotWith_EndDate objectAtIndex:1]];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
NSLog(@"date 1%@",date1);
NSLog(@"date 2%@",date2);

Это дает мне значение даты 1 как 1970-01-01 04:45:33 +0000, вместо этого мне нужно только время, которое должно быть 10:15: 33.

И то же самое для даты окончания также выдает лог как 1970-01-01 05:15:43 +0000 вместо этого он должен вывести как только компонент времени со значением 10:45:43.

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Время не существует без даты.Если вы не укажете дату, форматирование даты по умолчанию будет "1970-01-01" (эпоха Unix).Я надеюсь эта SO ссылка поможет вам.

Хотя date1 и date2 не содержат ожидаемого вами значения, я чувствую, что interval должно содержатьправильный результат вам нужен.Я предлагаю вам просто игнорировать даты в этом контексте.

0 голосов
/ 27 июня 2011

вы не указали дату и часовой пояс, поэтому NSDate объект выбирает объект по умолчанию для его использования.

...