2013-07-16 74 views
1

date始終爲零,我無法理解問題所在。iOS 6:從NSString轉換爲NSDate不起作用

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
NSDate *date = [dateFormatter dateFromString:@"2013-07-16T07:40:36.939-04:00"]; 
+0

該代碼對我來說很好。你如何驗證'date == nil'? – trojanfoe

+0

這表明「-04:00」是什麼? – sagarcool89

+0

@ sagarcool89「Zone」;請參閱:http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns – trojanfoe

回答

3

嘗試這樣,添加小時使用-符號和substacting使用+符號。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"]; 
    NSDate *date = [dateFormatter dateFromString:@"2013-07-16T07:40:36.939-04:00"];//chnage symbal here. 
    NSLog(@"%@",date); 

O/P: - 2013-07-16 11:40:36 +0000

+0

看起來很有前途...... – trojanfoe

+0

@Peyush戈爾:一旦嘗試這樣,它可能會幫助你可能 – Balu

+0

正如我所說的.. ..只要我使用ZZZZ而不是Z,它就會工作。唯一令我困擾的是它顯示GMT + 5:30或印度標準時間的時區。我想顯示IST .zzz應該可以工作,但它不起作用。 –

-1
NSDateFormatter* df = [[NSDateFormatter alloc]init]; 
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
NSString* str = @"2012-03-01T23:08:25.000Z"; // NOTE the change is here 
NSDate* date = [df dateFromString:str]; 
0

請檢查此:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS-hh:mm"]; 
NSDate *date = [dateFormatter dateFromString:@"2013-07-16T07:40:36.939-04:00"]; 
NSLog(@"%@",date); 

時區的使用下面甲酸鹽:

 Z 

±HH:MM或±HHMM

±hh 

讓我知道,如果你面對任何問題..

+0

日期來自服務器,不能更改。我需要將該時區轉換爲格式,所以我也需要這個格式 –

0

由於從服務器的時間戳的格式爲-04:00,我T選用ZZZZ

#define DEFAULT_DATE_FORMAT_TIMESTAMP @"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"