2013-08-07 96 views
8

我有這樣IOS如何設置日期格式

NSString *datestr = @"2013-08-06T03:51:54+00:00"; 

字符串我嘗試設置的日期格式如下:

NSDateFormatter *dformat = [[NSDateFormatter alloc]init]; 

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 

NSDate *date = [dformat dateFromString:datestr]; 

但日期將是零,那麼,誰能告訴我如何設置dateformat,thx!

+3

不是一天沒有'NSDateFormatter'重複! – Amar

+0

我想在「2015-12-31T01:45:00.5876454 + 05:30」這個fromat? – python

+0

這個問題的標題比先前回答的問題更具搜索友好性,另一個問題沒有被接受的答案 – Gerald

回答

12

試試這個:

NSDateFormatter *dformat = [[NSDateFormatter alloc]init]; 

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"]; 

NSDate *date = [dformat dateFromString:datestr]; 

添加ZZZ您格式化結束。

+1

-1因爲錯誤。打開Xcode並嘗試自己。 –

+1

我試過了,它不起作用。 – billwang1990

1

嘗試如下:

NSString *dateString = @"2013-08-06T03:51:54+00:00"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ"; 

NSDate *date; 
NSError *error; 
[formatter getObjectValue:&date forString:dateString range:nil error:&error]; 
+0

我得到了結果,謝謝 – billwang1990

6

嘗試這個代碼

NSString *datestr = @"2013-08-06T03:51:54+00:00"; 
NSDateFormatter *dformat = [[NSDateFormatter alloc]init]; 

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"]; 

NSDate *date = [dformat dateFromString:datestr]; 

使用小Z其中z給你 - 與特定非位置格式。在不可用的地方,可以回到本地化的GMT格式。對於短格式使用一到三個字母,對於完整格式使用四個字母。在短格式,metazone名稱不使用,除非commonlyUsed標誌是在語言環境

爲區有關目標C是指該鏈接 http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns希望日期格式模式的詳細信息,這將幫助你

+1

謝謝,它是正確的! – billwang1990

+0

另外請記住,您的格式字符串可以在某些區域進行奇蹟式重寫,有時https://developer.apple.com/library/ios/qa/qa1480/_index.html – Earlz