2012-08-24 11 views
22

सुनिश्चित नहीं है कि समस्या क्या है, लेकिन "जुलाई" महीने का नाम प्राप्त करने के बजाय, मुझे "07" मिलता है।NSDateFormatter पूर्ण महीने का नाम नहीं दिखा रहा है, केवल एक अंक संख्या

dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setLocale:[NSLocale systemLocale]]; 
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];  
[dateFormat setDateFormat:@"MMMM dd, h:mm a"]; 

मैं एम, एम एम, MMM, MMMM की कोशिश की है, और उन सभी ने मुझे एक नंबर देते हैं, महीने के नाम के बजाय, हालांकि प्रमुख 0 की विभिन्न मात्रा के साथ।

+0

मुझे लगता है कि यह लाइन समस्या है .. [dateFormat setLocale: [NSLocale systemLocale]]; नहीं जानते कि 'systemLocale' का उपयोग करने का आपका उद्देश्य क्या है लेकिन आप 'systemLocale' के बजाय' currentLocale' को आजमा सकते हैं – ila

उत्तर

45

दूसरी पंक्ति, setLocale के साथ कोई समस्या नहीं है। मुझे लगता है कि locale मैन्युअल रूप से सेट किया गया है जब सिस्टम अंग्रेजी महीने के नाम का उपयोग करने के लिए डिफ़ॉल्ट नहीं होगा? मैं locale बोलने वाले अंग्रेजी में रहता हूं, लेकिन शायद इससे कोई फर्क नहीं पड़ता।

किसी भी मामले में, लोकेल सेट करने से महीने का नाम समस्या ठीक नहीं होती है।

dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];  
[dateFormat setDateFormat:@"MMMM dd, h:mm a"]; 
7

-systemLocale वह नहीं है जो आप यहां चाहते हैं। यदि कोई अन्य लोकेल फिट बैठता है तो यह फ़ॉलबैक लोकेल लौटाता है। उपयोगकर्ता के वर्तमान लोकेल को पाने के लिए -currentLocale का उपयोग करें।

इसके अलावा

:
आप सही दिनांक स्वरूप पाने के लिए NSDateFormatter के +dateFormatFromTemplate:options:locale: विधि का उपयोग करना चाहिए। कुछ भाषाओं में दिन महीने से पहले आता है, और इसके विपरीत।

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