2013-07-19 71 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

相關問題