ios - NSDateFormatter 不适用于 PET 格式

标签 ios objective-c iphone nsdate nsdateformatter

我想从带有时区 PET 的 API 中解析日期字符串。所以我创建了 NSDateFormatter 并将字符串转换为日期,但不幸的是它不起作用。结果我没有得到。任何解决方法?

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"EEE MMM dd HH:mm:ss yyyy zz"];
NSDate *newStartDate = [formatter dateFromString:@"Mon Sep 29 14:40:00 2014 PET"];

NSLog(@"newStartDate - %@",newStartDate);

最佳答案

试试下面的函数。它会工作...

     NSDate *newStartDate = [self dateFromString:@"Mon Sep 29 14:40:00 2014 PET"];

     NSLog(@"newStartDate - %@",newStartDate);


    - (NSDate *)dateFromString:(NSString*)inDateString
    {
       NSDateFormatter  *pivotalDateFormatter = [[NSDateFormatter alloc] init];
       NSDate * dateToBeReturned = nil;
       [pivotalDateFormatter setDateFormat:@"EEE MMM dd HH':'mm':'ss yyyy z"];

       NSString * timezoneAbbreviation = [[inDateString componentsSeparatedByString:@" "]       lastObject];
       NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation:timezoneAbbreviation];
      if (timeZone)
      {
        NSString *gmtTime = [inDateString    stringByReplacingOccurrencesOfString:timezoneAbbreviation withString:@"GMT"];
        dateToBeReturned = [[pivotalDateFormatter dateFromString:gmtTime] dateByAddingTimeInterval:-timeZone.secondsFromGMT];
      }
    return dateToBeReturned;
   }

关于ios - NSDateFormatter 不适用于 PET 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121057/

相关文章:

ios - 多点触控的触摸跟踪

iphone - iOS 私有(private) API,用于在应用程序被杀死后在后台跟踪位置(如查找我的 friend )

ios - 在 UIPageViewController 上添加自定义 View

android - 是否可以使用手机天线发送和接收 radio 波?

ios - Outlet 无法连接到 CollectionView 单元格中的重复内容

ios - 可点击的 UILabel

ios - 使用 Cocos2D 中数组中的 Sprite 进行碰撞检测

iphone - 在模拟器上可以,但在iPhone上不行,如何调试?

iphone - Objective-C:简单 if x == y || 的问题y || y 命令

iphone - UIWindow 的 'rootViewController' 导出在 iOS 4.0 之前的版本上不可用