2012-02-13 18 views
5

मेरे पास आईएसओ 8601 दिनांक/समय विनिर्देशन में पढ़ने के लिए कोड का यह ब्लॉक है। समस्या यह है कि किसी कारण से, महीने काम नहीं करता है। हर बार जब मैं इसे परिवर्तित करता हूं तो "01" होता है। मैं क्या गलत कर रहा हूं?NSDateFormatter में गलत महीना है

NSDateFormatter *UTCDateFormat = [[NSDateFormatter alloc] init]; 
[UTCDateFormat setDateFormat:@"yyyy-MM-DD'T'HH:mm:ss'Z'"]; 
[UTCDateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[UTCDateFormat setCalendar:[[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]]; 
[UTCDateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 
NSLog(@"%@", [UTCDateFormat dateFromString:dateString]); 

तो, उदाहरण के लिए, यदि डेटस्ट्रिंग था:

@"2002-03-12T21:13:27Z" 

मेरी उत्पादन होगा:

2002-01-12 21:13:27 +0000 

बातें मैं पहले से ही की कोशिश की है:

  • बदल दिया एम.एम. के लिए एलएल
  • सेट के बिना प्रयास किया गया कैलेंडर/सेटलोकेल
  • '
  • अन्य स्थानों पर एमएम की स्विच की गई स्थिति के साथ' कोशिश की। यह कभी भी कुछ नहीं बदलता है।
  • एसओ पर सब देखा और यह हर किसी के लिए काम करता प्रतीत होता है।
+2

यह कुछ भी नहीं बदल सकता है, लेकिन मुझे लगता है कि 'डीडी' प्रारूप विनिर्देशक 'डीडी' होना चाहिए। – dasblinkenlight

उत्तर

15

इस

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

डीडी नहीं "एक महीने का दिन" "वर्ष का दिन" है की कोशिश करो। NSDateFormatter प्रारूपों को देखने के लिए एक शानदार स्रोत this table

+1

वाह ... तो क्यों दुनिया में डीएम काम करने से एमएम को रोक रहा था? ऐसा नहीं लगता है कि ऐसा होना चाहिए। लेकिन बहुत बहुत धन्यवाद! –

+0

'यह तालिका' अद्भुत है! यह ऐप्पल दस्तावेज होना चाहिए। – Lewis42

+0

कूल मैन। आपको बहुत - बहुत धन्यवाद ! –