2012-06-06 41 views
0

这是一个例子导致从我的服务器字符串:无法转换的NSString的NSDate对象

星期六,2011年12月24日14点33分43秒+0000

我想将其转换为NSDate,并保持空值。

这是我的代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss +0000"]; 
    NSDate *date = [dateFormat dateFromString:dateString]; 

为什么我得到空?

+1

你检查,你会得到使用'[DATEFORMAT stringFromDate:[NSDate的日期]什么字符串什么MVDS'? – mvds

+0

您确定“Sat,2011年12月24日14:33:43 +0000”正是您从服务器获得的内容吗?如果它甚至有点不同,dateFromString:将返回NULL。 – Carter

回答

3

它在这里工作得很好。你可能想要你的格式是这样的:

@"EEE, dd MMM yyyy HH:mm:ss z" 

否则,如果服务器返回一个不是GMT的时区,它会失败。

0

你的代码还有其他一些问题。检查你分配的位置或分配dateString。这可能是空的开始。

0

刚刚试过你的代码,你说你从服务器获得的字符串,它的工作正常。我甚至试过说一下使用[dateFormat stringFromDate:date]这也是返回正确的日期

1

试试这个

NSString *dateString [email protected]"Sat, 24 Dec 2011 14:33:43 +0000"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; 
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; 
NSDate *date = [dateFormat dateFromString:dateString]; 
NSLog(@"%@",date);