2009-10-16 11 views
6

शुभ दिन एक विशेष तिथि स्ट्रिंग पार्स नहीं होगा,NSDateFormatter dateFromString

मैं एक NSDateFormatter है कि एक विशेष स्ट्रिंग है कि मैं कन्वर्ट करने के लिए कोशिश कर रहा हूँ की तरह प्रतीत नहीं होता है। यह विशेष उदाहरण

2009-10-16T09:42:24.999605 

मेरी सभी अन्य तिथियां समान रूप से स्वरूपित हैं, और पार्स किया जा सकता है।

यहां वह कोड है जो को NSDate में परिवर्तित करता है।

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

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

[order setModifiedAtDate:[dateFormatter dateFromString:[orderDataDictionary valueForKey:@"ModifiedAt"]]]; 

order.ModifiedAtDateशून्यdateFromString कॉल के बाद है।

क्या कोई और ऐसे मामलों में आया है जहां उनकी तिथियां NSDates में परिवर्तित नहीं हो सकतीं?

धन्यवाद,

उत्तर

7

मैं फ़ॉर्मेटर से subsecond क्षेत्र को हटाने के द्वारा पार्स करने के लिए तिथि प्राप्त करने में सक्षम था:

NSString *test = @"2009-10-16T09:42:24.999605"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
NSDate *testOut = [dateFormatter dateFromString:test]; 

मैं तुम्हें अधिक विस्तार में पता कर सकते हैं कि ऐसा क्यों subsecond के साथ विफल संदेह क्षेत्र इस समारोह का उपयोग कर ऐसा लगता है कि यह एक ही बात करता है, लेकिन त्रुटि संदेश देता है के रूप में:

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/instm/NSDateFormatter/getObjectValue:forString:range:error:

किसी भी दर पर, उम्मीद है कि यह आपको फिर से जा रहा है।

1

आप इस तरह की कोशिश करनी चाहिए लोअरकेस "एस" दशमलव के स्थान पर,:

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.ssssss"] 

यह मेरे लिए काम किया।

संबंधित मुद्दे