Ios6 iOS 6 dateFromString返回错误的日期

Ios6 iOS 6 dateFromString返回错误的日期,ios6,Ios6,我最近升级到iOS 6,并注意到dateFromString不能正常工作,除非我的dateFormat有问题。它在升级之前工作正常 代码: NSString *string = @"2012-09-24 - Sun"; NSLog(@"string = %@", string); NSDateFormatter *df = [[NSDateFormatter alloc] init]; NSLocale *locale = [[NSLocale alloc] initWithLocaleIden

我最近升级到iOS 6,并注意到dateFromString不能正常工作,除非我的dateFormat有问题。它在升级之前工作正常

代码:

NSString *string = @"2012-09-24 - Sun";
NSLog(@"string = %@", string);
NSDateFormatter *df = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en-US"];
[df setLocale:locale];
[df setDateFormat:@"yyyy-MM-dd - EEE"];
NSDate *date = [df dateFromString:string];
NSLog(@"date = %@", date);
string = 2012-09-24 - Sun
date = 1999-12-26 05:00:00 +0000
输出:

NSString *string = @"2012-09-24 - Sun";
NSLog(@"string = %@", string);
NSDateFormatter *df = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en-US"];
[df setLocale:locale];
[df setDateFormat:@"yyyy-MM-dd - EEE"];
NSDate *date = [df dateFromString:string];
NSLog(@"date = %@", date);
string = 2012-09-24 - Sun
date = 1999-12-26 05:00:00 +0000

有什么建议吗?

看起来格式化程序更改了iOS 6中的规格:

  • OS X v10.8和iOS 6.0中的格式化程序使用版本
  • iOS 5.0-5.1中的格式化程序使用版本
    • 请检查以下内容:

      NSString *string = @"2012-09-24 - Sun";
      NSLog(@"string = %@", string);
      NSDateFormatter *df = [[NSDateFormatter alloc]init];
      [df setDateFormat:@"yyyy-MM-dd - EEE"];
      NSDate * date = [df dateFromString: string];
      NSDate * sourceDate = date;
      NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
      NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
      NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
      NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
      NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;   
      date = [[NSDate alloc] initWithTimeInterval:interval sinceDate:date];
      NSLog(@"date = %@", date);  
      

      有官方文件吗?@mihirmehta-有。看,你找到解决办法了吗?我也面临同样的问题