2011-10-29 170 views
1

我經常使用NSDate比較方法 - 但我想考慮兩個日期類似的日期,如果它們在年,月,日相等。在比較之前,我已經制作了一個名爲「cleanDate」的過程來刪除小時部分。比較日期 - 忽略小時部分

-(NSDate*)cleanDate:(NSDate*)date { 
    NSCalendarUnit unitflags; 
    NSDateComponents *component; 
    NSCalendar *calendar; 
    calendar=[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]autorelease]; 
    unitflags=NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; 
    component=[calendar components:unitflags fromDate:date]; 
    return [calendar dateFromComponents:component]; //Dato uten klokke  
} 

但我的日期出來爲:

2011-10-28 22:00:00 和一些日期爲:2011-10-28 23:00:00

我希望小時部分相似,例如00:00。

怎麼了?它與夏令時有什麼關係?其他?謝謝。

+0

例如:OLD 2011-11-01 13:04:33 +0000 新2011-10-31 23:00:00 +0000 似乎成爲錯誤的一天,以及... – folium

回答

0

看起來這是一個時區的問題... 我想的NSLog將默認爲本地時區 - 但它似乎默認爲GMT ...

Date with GMT time zone is: Sat, 29 Oct 2011 22:00:00 GMT+00:00 
Date with system time zone is: Sun, 30 Oct 2011 00:00:00 GMT+02:00 
NSlog shows 2011-10-29 22:00:00 +0000 

When using NSLog(@"NSlog shows %@",finalDate); it seems to print the GMT time... 
When using this code - I will get the local date in my time zone: 

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss z"]; 
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; 
NSString *dateString = [dateFormatter stringFromDate:myDate]; 
NSLog(@"Date with system time zone is: %@",dateString); 

...所以我原來的cleanDate實際上似乎做我想要的畢竟...

2
-(NSDate*)cleanDate:(NSDate*)date { 

      NSDateComponents *comps = [[NSCalendar currentCalendar] 
              components:NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit 
              fromDate:date]; 
       [comps setHour:0]; 
       [comps setMinute:0];  
       [comps setSecond:[[NSTimeZone systemTimeZone] secondsFromGMT]]; 

      return [[NSCalendar currentCalendar] dateFromComponents:comps]; 
} 
+0

謝謝。 OLD 2011-11-01 13:04:33 +0000。新2011-11-01 01:00:00 +0000。我得到正確的一天......第二是好的,分鐘是好的......小時是01 ......但只要它固定在01就可以了......這是否如預期的那樣? – folium

相關問題