下面是代碼:如何比較NSDate的兩次。在進行比較時返回ndate。 #調試我的代碼
// get current date/time
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSString *currentTime = [dateFormatter stringFromDate:today];
currentTime = [currentTime stringByReplacingOccurrencesOfString:@"AM" withString:@""];
currentTime = [currentTime stringByReplacingOccurrencesOfString:@"PM" withString:@""];
currentTime = [currentTime stringByReplacingOccurrencesOfString:@" " withString:@""];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *date1= [formatter dateFromString:currentTime];
NSDate *date2 = [formatter dateFromString:@"5:00:00"];
NSComparisonResult result = [date1 compare:date2];
if(result == NSOrderedDescending)
{
NSLog(@"date1 is later than date2");
}
在這裏,當我運行的代碼我收到日期1和date2作爲零,而我得到正確的當前時間以24小時格式。我從[NSDate日期]獲取當前時間的同時應用了相同的日期格式。我在這裏錯過了什麼?
編輯1:修正了錯字並改變了標題。
編輯2:根據建議,只比較小時,我可以使用:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit) fromDate:date1];
NSInteger hour = [components hour];
編輯3:改變了標題,以匹配具體要求。
但我無法從當前時間檢索date1。它拋出一個垃圾值。
你爲什麼安定g風格以及格式?事實上,你究竟想在這裏做什麼?它僅僅是一個NSDate和日期格式化程序的實驗,還是你想做一些類似「獲取今天秒數」的內容? – 2014-08-29 15:32:41
其實我想比較兩次,並檢查當前時間是否過去5:00 AM。 – 2014-08-29 15:36:20
只應用dateFormat本身也給了我date1和date2爲零。 – 2014-08-29 15:37:58