Objective c 如何扫描此特定字符串?

Objective c 如何扫描此特定字符串?,objective-c,Objective C,假设我有这样一个字符串:01/22/2014 09:00 pm GMT 我怎么知道时间只有:晚上9:00 这是我的密码 NSString *stringValue=[[NSString alloc]initWithFormat:@"%@",[dataForLoading valueForKey:@"realtime_time"]]; NSLog(@"String Value:%@",stringValue); NSScanner *scanner=[NSScanner scannerWith

假设我有这样一个字符串:01/22/2014 09:00 pm GMT

我怎么知道时间只有:晚上9:00

这是我的密码

NSString *stringValue=[[NSString alloc]initWithFormat:@"%@",[dataForLoading valueForKey:@"realtime_time"]];

NSLog(@"String Value:%@",stringValue);

NSScanner *scanner=[NSScanner scannerWithString:stringValue];
给你:

NSString *input = @"01/22/2014 09:00 pm GMT";
NSDateFormatter *dateFormatterInput = [[NSDateFormatter alloc] init];
[dateFormatterInput setDateFormat:@"MM/dd/yyyy hh:mm a Z"];
NSDate *date = [dateFormatterInput dateFromString:input];
NSDateFormatter *dateFormatterOutput = [[NSDateFormatter alloc] init];
[dateFormatterOutput setDateFormat:@"hh:mm a"];
NSString *output = [dateFormatterOutput stringFromDate:date];

NSLog(@"Output: %@", output);

Arturgrigo解决方案的一个小小改进是不分配/初始化另一个NSDateFormatter,因为它们非常昂贵,因此您应该避免使用超出需要的东西

NSString *input = @"01/22/2014 09:00 pm GMT";
NSDateFormatter *dateFormatterInput = [[NSDateFormatter alloc] init];
[dateFormatterInput setDateFormat:@"MM/dd/yyyy hh:mm a Z"];
NSDate *date = [dateFormatterInput dateFromString:input];
[dateFormatterInput setDateFormat:@"hh:mm a"];
NSLog(@"%@", [dateFormatterInput stringFromDate:date]);

NSDateFormatter?或者使用NSRange,或者使用字符串分隔的组件(如果始终相同)。但是您可能想使用NSTimeZone,所以NSDateFormatter应该是要使用的解决方案。这个问题似乎离题了,因为它表明询问者没有付出任何努力。谢谢。这对我来说很好。谢谢。这对我来说很好。