2015-10-14 49 views
-1

我有这个字符串日期:(目标C)的NSDate是零的日期转换在字符串

星期三,2015年10月14日上午09时58 CDT

而且我试着转换这个字符串的NSData与此代码

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"EE, d LLL YYYY HH:mm a Z"]; 
NSDate *date = [dateFormat dateFromString:@"Wed, 14 Oct 2015 9:58 am CDT"]; 

但迄今为止,这是一个NSDate变量始终是nil。我试图用不同的语法来更改我的DateFormat,但我得到的结果相同。

回答

4

问题是您正在使用capital Z instead of lowercase z作为时区缩写。我还建议将EEE降至一个E,将LLL更改为MMM,使用yyyy年和h而不是HH小时。

"E, d MMM yyyy h:mm a z" 

作为日期格式化问题的快速提示,请尝试先将日期转换为字符串并比较输出。

+1

另外'hh'而不是'HH',我认为他还必须考虑他的日期格式设置区域设置包含英文模式。 – Sulthan

+2

你答案的最后一句应该是任何'NSDateFormatter'问题的规范答案。 –

+1

根据你的最后一句话,格式应该是“EEE,MMM yyyy h:mm a z”,尽管'E'除了'EEE'外还可以工作。注意使用'h'而不是'hh',因为这个例子中的小时不是'09'。 – rmaddy