我想檢查當前日期是否在兩個給定日期之間。我做了以下工作檢查當前日期是否在兩個給定日期之間
NSDate *now = [NSDate new];
NSLog(@"Now is %@",now);
NSCalendar *myCalendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
[components setYear:2013];
[components setMonth:06];
[components setDay:28];
[components setHour:5];
[components setMinute:00];
NSDate *startDate1 = [myCalendar dateFromComponents:components];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone localTimeZone];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSLog(@"start dateeee is %@",startDate1);
NSDateComponents* components2 = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:[NSDate date]];
[components2 setYear:2013];
[components2 setMonth:06];
[components2 setDay:29];
[components2 setHour:4];
[components2 setMinute:59];
NSDate *endDate1 = [myCalendar dateFromComponents:components];
NSLog(@"end date is %@",endDate1)
;
現在我已經創建了2個日期Startdate1
和endDate1
。爲了檢查當前日期是否在這些日期之間,我正在執行此操作。
NSComparisonResult result1 = [now compare:startDate1];
NSComparisonResult result2 = [now compare:endDate1];
if (result2 == NSOrderedSame && result1 == NSOrderedSame) {
NSLog(@"HELL YEAH! ");
}
但我從來沒有得到一個HELL YEAH?
注意:我已將iPhone日期時間設置爲開始日期和結束日期之間的時間。而且,這裏是我的日誌:
2013-06-29 11:11:48.727 Genk on stage[2205:907] Now is 2013-06-29 09:11:48 +0000
2013-06-29 11:11:48.728 Genk on stage[2205:907] start dateeee is 2013-06-28 03:00:00 +0000
2013-06-29 11:11:48.729 Genk on stage[2205:907] end date is 2013-06-28 03:00:00 +0000
檢查我的答案在這裏:http://stackoverflow.com/questions/16520676/wrong-date-comes-back-from-nsdatecomponents/16526286#16526286 –
我只是瞪大眼睛你的問題「檢查當前日期爲在兩個給定的日期+ iphone之間「。 – rptwsthi