在几乎疯狂地搜索我的代码失败的地方之后......我能够隔离这种奇怪的行为。看看减去-200天会发生什么
NSDate *now = [NSDate date]; //now is 2013-07-19
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"YYYY-MM-dd"];
NSDate *newDate1 = [now dateByAddingTimeInterval:60*60*24*-199];
newDateTmp=[format stringFromDate:newDate1];
NSLog(@"now:%@ newDateTmp:%@",now,newDateTmp);
newDate1 = [now dateByAddingTimeInterval:60*60*24*-200];
newDateTmp=[format stringFromDate:newDate1];
NSLog(@"now:%@ newDateTmp:%@",now,newDateTmp);
newDate1 = [now dateByAddingTimeInterval:60*60*24*-201];
newDateTmp=[format stringFromDate:newDate1];
NSLog(@"now:%@ newDateTmp:%@",now,newDateTmp);
newDate1 = [now dateByAddingTimeInterval:60*60*24*-365];
newDateTmp=[format stringFromDate:newDate1];
NSLog(@"now:%@ newDateTmp:%@",now,newDateTmp);
日志:
2013-07-19 15:58:46.123 Vendes[2927:907] 现在:2013-07-19 13:58:46 +0000 newDateTmp:2013-01-01 // 这没关系
2013-07-19 15:58:46.124 Vendes[2927:907] 现在:2013-07-19 13:58:46 +0000 newDateTmp:2013-12-31 // 这是不正确的!!!!看年份
2013-07-19 15:58:46.125 Vendes[2927:907] 现在:2013-07-19 13:58:46 +0000 newDateTmp:2012-12-30 // 这没关系
2013-07-19 15:58:46.127 Vendes[2927:907] 现在:2013-07-19 13:58:46 +0000 newDateTmp:2012-07-19 // 这没关系
我想它也会在明天减去 201 .. ?? :)
任何想法?
谢谢
PS。我用它解决了
NSDate *newDate1= [NSDate dateWithTimeInterval:60*60*daysToAdd sinceDate:now];
适用于任何 daysToAdd 值。