我有像这样输出的字符串:
7/16/15东部标准时间上午10:00
当我尝试将它们转换为日期时,请使用以下代码:
- (NSDate*) convertStringToDateAndTime : (NSString*) strToConvert {
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm aa"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];
NSLog(@"%@", [dateFormatter dateFromString:strToConvert]);
return [dateFormatter dateFromString:strToConvert];
}
我得到一个空结果。我是否必须删除东部标准时间后缀?
由于
编辑:这里是控制台日志输出,第一个值是NSString尝试转换,第二个是转换结果,这是修改代码后为glorfindal建议的。
2015-07-16 14:39:07.101 xxxxxxxxxxxx[23685:9316155] 7/16/15, 1:08:00 PM Eastern Daylight Time::::(null)
答案 0 :(得分:1)
您必须确保dateFormat与输入字符串完全匹配,包括标点符号。以下代码为我正确解析了日期:
NSString* strToConvert = @"7/16/15, 1:08:00 PM Eastern Daylight Time";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yy, HH:mm:ss aa zzzz"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];
NSLog(@"%@", [dateFormatter dateFromString:strToConvert]);