Iphone 如何从给定字符串中获取时间(hh:mm:ss)?

Iphone 如何从给定字符串中获取时间(hh:mm:ss)?,iphone,ios,cocoa-touch,nsdate,Iphone,Ios,Cocoa Touch,Nsdate,我正在从web服务获取一个字符串,格式如下:pubDate:Fri,2013年7月19日07:13:44 GMT 我只想用HH:mm:ss格式打印时间,也就是说,我想打印07:13:44。 我如何才能做到这一点?使用以下方法: NSString *str = @"Fri, 19 Jul 2013 07:13:44 GMT"; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"EE, dd MMM y

我正在从web服务获取一个字符串,格式如下:pubDate:Fri,2013年7月19日07:13:44 GMT 我只想用HH:mm:ss格式打印时间,也就是说,我想打印07:13:44。 我如何才能做到这一点?

使用以下方法:

NSString *str = @"Fri, 19 Jul 2013 07:13:44 GMT";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EE, dd MMM yyyy HH:mm:ss z"];
NSDate *date = [df dateFromString:str];
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[df setTimeZone:sourceTimeZone];

NSDate *dateFromString = [df dateFromString:str];
[df setDateFormat:@"HH:mm:ss"];

// This is the time you need
NSString *timeIs = [df stringFromDate:date];

NSString*pubDateString=[NSString stringWithFormat:@Fri,2013年7月19日07:13:44 GMT]

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"];

NSDate *pubDate = [df dateFromString:pubDateString];

[df setDateFormat:@"HH:mm:ss"];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

NSLog(@"%@",[df stringFromDate:pubDate]);
输出:07:13:44

苹果的日期格式指南:

你在谷歌上试过吗?有两种选择:正则表达式还是NSDATEFormatter我在谷歌上试过,但我完全搞不懂。如果您能提供任何示例帮助,我们将不胜感激。这并不完全正确。首先,没有AM/PM信息,因此您应该使用HH而不是HH,其次,它将显示在用户的本地时区中,例如,在日本,HH的时间为04:13:44,HH的时间为16:13:44HH@borrrden我已经根据时区编辑了我的答案。呵呵,现在两个答案几乎完全一样了。除了你没有把你的第二种格式也改成“HH”,这并不是给定信息的明确要求,所以我会在任何情况下+1你,我已经更新了。无论如何,谢谢:-太好了,我需要的。非常感谢……:这并不能回答问题-我刚刚意识到这一点。已经编辑了我的答案。差不多了,但是OP想要输出07:13:44,而不是15:13:44。我取消了我的否决票。哦,你说得对。忘记设置时区了。编辑。好的,现在你的努力得到+1^^