我正在使用下面的方法來添加或減去NSDate中的天數。這是使用NSDateComponents將日期添加到NSDate的正確方法嗎?
當我記錄這些值時,我有時會得到意想不到的結果。
這裏是殼體的一個:
//This adds X days to the current Date and returns to the user
+(NSDate*)getRelativeDateInDays:(NSInteger)days forDate:(NSDate*)date{
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents = [[NSDateComponents alloc] init];
[weekdayComponents setDay:days];
NSDate *newDate = [gregorian dateByAddingComponents:weekdayComponents toDate:date options:0];
[gregorian release];
[weekdayComponents release];
NSLog(@"start Date : %@ End Date %@",date,newDate);
返回newDate; }
CASE 1:
2012-02-17 06:28:14.474的應用[2906:707]開始日期:2012-03-08 11點26分23秒0000結束日期2012- 03-09十一點26分23秒0000天數1的
CASE 2:
2012-02-17 06:29:00.631的應用[2906:707]開始日期:2012-03- 10 11:26:23 +0000結束日期2012-03-11 10:26:23 +0000天數1
在案例1中,當我在2012-03-08 11:26:23 +0000添加單日時,我得到2012-03-09 11:26:23 +0000。
但是當我添加單日到2012-03-10 11:26:23 +0000我得到2012-03-11 10:26:23 +0000。
1小時額外減少。這裏有什麼問題? 有沒有人遇到過這個問題?