iOS6 TimeInterval错误

时间:2012-11-30 00:56:49

标签: iphone objective-c ios

我有一些代码可以在iOS 5中完美运行,但在iOS 6中会中断。

这是TimeIntervalSinceDate方法......

我发现其他人遇到了这个问题,但没有解决方案:

这是我的代码:

  NSString *origDate = @"2012-11-29 19:43:30";

   NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setFormatterBehavior:NSDateFormatterBehavior10_4];
    [df setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSDate *convertedDate = [df dateFromString:origDate];
    [df release];


    NSDate* sourceDate = [NSDate date];

    NSLog(@"sourceDate: %@", sourceDate);
    NSLog(@"convertedDate: %@", convertedDate);

    NSTimeInterval ti = [ sourceDate timeIntervalSinceDate:convertedDate];

    NSLog(@"interval double: %f", ti);

在iOS 5中,我将其作为值:

interval double: 711.113610

在iOS 6中我得到:

interval double: 31623151.242078

有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:3)

了解Apple对Date Formatters的评价:

  

常见的错误是使用   YYYY。 yyyy指定日历年,而YYYY指定年份   (“年度周”),用于ISO年 - 周历。多数情况   案例,yyyy和YYYY产生相同的数字,但它们可能是   不同。通常,您应该使用日历年。

答案 1 :(得分:0)

iOS在5.1和6之间切换Unicode版本。

iOS 6.0 - 使用tr35-25代替tr35-19