2014-12-22 100 views
0

我想創建一個NSDate我有一些日期字符串。無返回從dateFromString NSDateFormatter

這是我在做什麼。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; 
    [dateFormatter setLocale:enUSPOSIXLocale]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; 

    NSDate *now = [NSDate date]; 
    NSDate *deliveryETA = [dateFormatter dateFromString:deliveryDate]; 
    NSDate *createDate = [dateFormatter dateFromString:shipDate]; 

deliveryETA始終是零這個字符串2014-12-23T23:59:59但CREATEDATE總是正確初始化。

任何想法,爲什麼這是?

+2

包括'deliveryDate'的詮釋' –

+0

你能否提供更多的數據(deliveryDate,shipDate)給你的問題,你如何獲得格式和你想如何獲得? – Hiren

+0

'deliveryDate'是'2014-12-23T23:59:59' – Clip

回答

2

變化NSDateFormatterdeliveryETA

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; 
[dateFormatter setLocale:enUSPOSIXLocale]; 

// chanegn this line 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 

NSDate *now = [NSDate date]; 

NSDate *deliveryETA = [dateFormatter dateFromString:deliveryDate]; 
// add this line 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; 
NSDate *createDate = [dateFormatter dateFromString:shipDate]; 

告訴我發生什麼事......

-2
NSDate *deliveryETA = [dateFormatter dateFromString:deliveryDate]; 

deliveryETA具有值輸入字符串MUST包含格式yyyy-MM-dd'T'HH:mm:ssZZZZZ

+0

格式中需要單引號。日期中添加的任何字符都需要包含在單引號中。 –

+1

你的答案是倒退。由於該字符串沒有時區,因此格式不應該包含時區說明符。您需要使格式與數據匹配。 – rmaddy

相關問題