2011-10-29 20 views
7

मेरे पास एक एनएसडीएटी ऑब्जेक्ट है जिसमें से मैं दो एनएसएसटींग करता हूं: दिनांक और समय। वर्तमान में मैं दिनांक 20111031 और समय 23:15 के रूप में प्रारूपित करता हूं।डिवाइस वर्तमान क्षेत्र सेटिंग्स के बाद प्रारूप दिनांक और समय

मैं इसे करना चाहता हूं डिवाइस (आईफोन, आईपैड, आईपॉड टच) को वर्तमान क्षेत्र सेटिंग्स (भाषा नहीं!) में प्रारूपित करना है। तो उदाहरण के लिए:

  • एक डिवाइस क्षेत्र के लिए सेट अमेरिका (मेरे सिर के ऊपर से) प्रदर्शित होगा 10.31.11 और समय 11:15 बजे
  • क्षेत्र के लिए सेट एक डिवाइस नीदरलैंड आएगा: 31- 10-2011 और समय 23.15
  • एक डिवाइस क्षेत्र स्वीडिश करने के लिए सेट दिखाएगा: 2001-10-31 और समय 23:15

मैं यह कैसे कर सकते हैं?

+1

फ़ोन के डिफ़ॉल्ट लोकेल का उपयोग करके प्रारूप। –

उत्तर

37

निम्नलिखित, पर्याप्त होना चाहिए क्योंकि एक NSDateFormatter डिफ़ॉल्ट रूप से फोन के डिफ़ॉल्ट स्थान है:

NSDate *date = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 

FYI करें यहाँ क्या अमेरिका के साथ होता है, नीदरलैंड और स्वीडन:

[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
// displays 10/30/11 7:09 PM 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"nl_NL"]]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
// displays 30-10-11 19:09 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"sv_SE"]]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
// displays 2011-10-30 19:09 
+0

बहुत धन्यवाद। उसे नहीं पता था। (हालांकि थोड़े बेवकूफ महसूस करें);) –

+2

मेरी खुशी! मुझे केवल यह पता है क्योंकि मैंने पिछले तीन दिनों में एनएसडीएटी से संबंधित बग से निपटने और इस सामान के बारे में और अधिक सीखने के तरीके से पहले कभी उम्मीद की थी: पी – yuji

7

कई महान कोड यहाँ स्निपेट्स। अंतरराष्ट्रीय तारीख प्रारूपों के लिए मेरे दिमाग में भी बेहतर है (जब मैं चाहता हूं कि तारीख है, समय नहीं) यह फोन सेटिंग्स में लोकेल भाषा जानता है:

NSDate *date = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifier]]; 
[dateFormatter setTimeStyle:NO]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
NSLog(@"%@",[dateFormatter stringFromDate:date]); 
संबंधित मुद्दे