2011-05-09 22 views
10

के अनुसार मैं, शायद, एक मूर्ख समस्या से पागल हो रहा हूँ। वर्ष, माह और दिन:NSDateFormatter setDateFormat currentLocale

मैं 3 तार किया है। अगर यह fr_FR DateFormat dd किया जाना चाहिए/MMM/वर्ष

है MMM/dd/yyyy

: मैं अगर currentLocale localeIdentifier en_US मेरी DateFormat होना चाहिए सही currentLocale के आधार पर प्रारूप में एक तिथि तक के लिए है, इसलिए यानी की जरूरत

मुझे नहीं लगता कि यह करने के लिए एक ही रास्ता currentLocale localeIdentifier और फिर अगर के एक समूह के साथ शुरू करने के लिए है।

अग्रिम धन्यवाद।

मैक्स

उत्तर

7

NSDateComponents पर देखो एक NSDate बनाते हैं, तो यह फ़ॉर्मेट करने के लिए NSDateFormatter उपयोग करने के लिए। NSDateFormatter प्रारूप शैली (जैसे
NSDateFormatterMediumStyle) के आधार पर, प्रारूप दिनांकों को वर्तमान स्थान का उपयोग करता है।

+0

के आधार पर आप बहुत धन्यवाद की समझ में मिलता है। NSDateComponents में मदद की। – masgar

34

अगर मैं अपने प्रश्न को समझते हैं, आप उपयोगकर्ता के उपकरण के स्थान के लिए अपने NSDateFormatter सेट करना चाहते हैं। उस के लिए आप बस कुछ इस तरह कर सकते हैं:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterNoStyle]; 
[dateFormatter setLocale:[NSLocale currentLocale]]; 
NSDate *date = [NSDate date]; 
NSString *dateString = [dateFormatter stringFromDate:date]; 
+0

बिल्कुल सही! धन्यवाद। – Septronic

2
-(NSString *) stringFromDate:(NSDate *) date{ 

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

    [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 

    [dateFormatter setLocale:[NSLocale currentLocale]]; 

    NSString *dateString = [dateFormatter stringFromDate:date]; 

    [dateFormatter release]; 

    return dateString; 
} 

-(NSDate *) dateFromString:(NSString *) dateInString{ 

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

    [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 

    [dateFormatter setLocale:[NSLocale currentLocale]]; 

    NSDate *dateFromString = [dateFormatter dateFromString:dateInString]; 

    [dateFormatter release]; 

    return dateFromString; 
} 

मुझे आशा है कि इस मदद करता है।

0

मामले में आप, प्रारूपों setDateStyle साथ प्रयोग करने योग्य की तुलना में स्वरूप के बारे में और अधिक लचीलापन चाहते हैं एक ऐसी ही सवाल का मेरा उत्तर पर एक नजर है: https://stackoverflow.com/a/20219610/1896336

3

स्विफ्ट 3 में:

let formatter = DateFormatter() 
formatter.dateStyle = .medium 
formatter.timeStyle = .none 
formatter.locale = Locale.current 
let date = Date() 
let dateString = formatter.string(from: date) 
print(dateString) 
+0

NSLocale.currentLocale() अब और काम नहीं करता है –

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