使用setDateFormat将NSString赋予NSDate

时间:2014-02-04 12:22:17

标签: parsing nsstring nsdate

我遇到问题NSDateFormatter解析来自网络的字符串。

我将日期解析为字符串并将其转换为NSDate。问题在于选择正确的格式字符串。

解析日期有以下“格式”:

Feb 04, 2014 8:00 AM ET

但是我没有找到将它们转换为NSDate

的正确格式

我尝试过:EEE dd, yyyy hh:mm a但它无效。

代码很简单:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE dd, yyyy hh:mm a"];
NSDate *articleDate = [formatter dateFromString:articleDateString];

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试以下代码将NSString转换为NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd, yyyy hh:mm a 'ET'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
NSDate *articleDate = [dateFormatter dateFromString:@"Feb 04, 2014 8:00 AM ET"];
NSLog(@"-->%@",articleDate);

答案 1 :(得分:0)

使用此页面:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

将“EEE”更改为“MMM”并在末尾添加“z”以捕捉您的时区。

“EEE”是星期几,例如“星期二”,而非月份。