2012-09-05 51 views
1

我有一个很难从下面的格式字符串转换为一个日期到的NSDate:解析GMT-5 + DST与NSDateFormatter

2012-09-05 12:00 GMT-5 +DST 

到目前为止,我有这样的代码:

NSString *myDateStr = @"2012-09-05 12:00 GMT-5 +DST"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"YYYY-MM-DD HH:mm:ss Z"]; 
NSDate *date = [formatter dateFromString:myDateStr]; 

因为它来自API,所以我无法控制日期字符串的格式。

我需要编写一个自定义格式化程序来解析这可能吗?

+0

如果你已经解决了你的查询..使用我的解决方案..请接受 –

回答

0

将您的日期字符串传递给此函数,该函数将返回NSDate对象。

如果您得到正确的值,您可以重新检查,如GMT-5 + DST与CDT相同。 Reference

将时区设置为CDT会给你相同的结果。

-(NSDate *)timeConvert:(NSString *)string 
{ 
     NSString *firstString = [string substringToIndex:16]; 
     NSString *lastString = [string substringFromIndex:17]; 

     NSLog(@"%@, %@", firstString, lastString); 
     NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:lastString]; 
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
     [formatter setTimeZone: timeZone]; 

     NSDate *date = [formatter dateFromString:firstString]; 

     return date; 
}