2013-07-19 36 views
-5

我正在从网络服务中的字符串格式,发布时间:“星期五,2013年7月19日7点13分44秒GMT” 我想打印只是HH时间:mm:ss格式,即,我想打印07:13:44。 我怎么能做到这一点?如何获取时间从给定的字符串(HH:毫米SS)?

+0

你试过在谷歌? –

+1

两个选择:正则表达式或者'NSDateFormatter' – borrrden

+0

我试了谷歌,但我完全糊涂了。任何帮助一个例子,将不胜感激。 – Maverick

回答

1

使用此:

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]; 
+0

这不太对。首先没有上午/下午的信息,所以你应该使用'HH'而不是'hh',其次它将显示在用户的当地时区(例如,在日本这里,'time'将是04 :13:44'hh'和十六点13分44秒的'HH' – borrrden

+0

@borrrden我已经根据时区编辑我的回答 –

+0

嘿,现在这两个问题的答案是(几乎)完全一样除了你。并没有使你的第二个格式'HH'(这是不明确的要求从给定的信息,所以我会+1你反正) – borrrden

1

的NSString * pubDateString = [NSString的stringWithFormat:@ “星期五,2013年7月19日7时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

苹果的日期格式指南: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html

+0

这不回答这个问题。 -1 – borrrden

+0

道歉,刚刚意识到这一点。已经编辑我的答案。 – Yazid

+0

差不多,但OP要输出7点13分44秒,而不是15点13分44秒。我虽然删除了我的downvote。 – borrrden

相关问题