iOS将字符串转换为日期和时间......东部标准时间后缀

时间:2015-07-16 18:31:44

标签: ios nsdate nsdateformatter

我有像这样输出的字符串:

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)

1 个答案:

答案 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]);