我有一個字符串 - 時間,開始,結束:格式「hh:mm」NSDate from NSString like HH:mm
例如,「21:00」。 我需要比較 - 如果結束<開始和結束 之間的「時間」開始,例如(「21:10」「10:00」)應被視爲:第二天從'開始'到'結束' 。
我不能轉換的NSString像@「23:00」到NSDate的,然後我需要比較... :(
感謝意見;)
我有一個字符串 - 時間,開始,結束:格式「hh:mm」NSDate from NSString like HH:mm
例如,「21:00」。 我需要比較 - 如果結束<開始和結束 之間的「時間」開始,例如(「21:10」「10:00」)應被視爲:第二天從'開始'到'結束' 。
我不能轉換的NSString像@「23:00」到NSDate的,然後我需要比較... :(
感謝意見;)
您可以轉換的字符串輸入HH:mm
爲NSDate
。如果endDate
是更小比startDate
,然後添加一天。
NSString *dateString = @"23:00";
NSString *startString = @"21:00";
NSString *endString = @"10:00";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm";
NSDate *date = [formatter dateFromString:dateString];
NSDate *startDate = [formatter dateFromString:startString];
NSDate *endDate = [formatter dateFromString:endString];
if ([endDate compare:startDate] == NSOrderedAscending) {
endDate = [endDate dateByAddingTimeInterval:24*3600];
}
if ([startDate compare:date] == NSOrderedAscending && [date compare:endDate] == NSOrderedAscending) {
NSLog(@"Date %@ is in the interval [%@, %@]", dateString, startString, endString);
} else {
NSLog(@"Date %@ is not in the interval [%@, %@]", dateString, startString, endString);
}
PS。我假設在這裏使用ARC。
這是NSDateFormatter的用途。或者你可以使用NSCalendar。當然,對於你的「第二天」邏輯,你需要實際做一些編程。 – 2012-03-18 19:35:20
看起來很對我。你的時區是什麼? – 2012-03-18 19:47:35
[將NSString的日期轉換爲NSDate]的可能的副本(http://stackoverflow.com/questions/4332319/convert-nsstring-of-a-date-to-an-nsdate) – 2012-03-18 19:50:43