2012-03-12 14 views
13

मेरे पास यह कोड है जहां मैं वर्तमान दिनांक प्राप्त करने और वर्तमान लोकेल में इसे प्रारूपित करने का प्रयास कर रहा हूं।मैं उपयोगकर्ता के लोकेल के लिए वर्तमान दिनांक कैसे प्रारूपित करूं?

NSDate *now = [NSDate date]; // gets current date 
NSString *sNow = [[NSString alloc] initWithFormat:@"%@",now]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"mm-dd-yyyy"]; 
insertCmd = [insertCmd stringByAppendingString: formatter setDateFormat: @"MM.dd.yyyy"]; 

मैं जानता हूँ कि अंतिम पंक्ति गलत है, लेकिन यह पता लगाने की नहीं कर पा रहे ... "insertCmd" एक NSString है कि मैं एक FMDB आदेश के लिए निर्माण कर रहा हूँ है।

सहायता की सराहना की जाएगी, या "डॉक्टर" के लिए एक सूचक जहां इसका वर्णन किया गया है।

उत्तर

29

मैं इस मामले में setDateFormat का उपयोग नहीं करता, क्योंकि यह दिनांक स्वरूपक को किसी विशिष्ट दिनांक प्रारूप (दोह!) पर प्रतिबंधित करता है - आप उपयोगकर्ता के लोकेल के आधार पर गतिशील प्रारूप चाहते हैं।

NSDateFormatter निर्मित दिनांक/समय शैलियों है कि आप में से चुन सकते हैं, जैसे कि NSDateFormatterMediumStyle, NSDateFormatterShortStyle और इतने पर का एक सेट प्रदान करता है।

तो क्या आपको क्या करना चाहिए है:

NSDate* now = [NSDate date]; 
NSDateFormatter* df = [[NSDateFormatter alloc] init]; 
[df setDateStyle:NSDateFormatterMediumStyle]; 
[df setTimeStyle:NSDateFormatterShortStyle]; 
NSString* myString = [df stringFromDate:now]; 

यह, एक मध्यम लंबाई की तारीख और एक छोटी लंबाई समय के साथ एक तार के साथ प्रदान करेगा सभी उपयोगकर्ता किसी भी स्थान पर निर्भर करता है। सेटिंग्स के साथ प्रयोग करें और जो भी आपको पसंद है चुनें। https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/c/tdef/NSDateFormatterStyle

3

आप स्थानीय दिनांक और समय चाहते हैं यह आप के लिए यह दे देंगे:

NSString *localizedDateTime = [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle]; 

कोड ऊपर आप स्थानीय दिनांक और समय नहीं देता

यहाँ उपलब्ध शैलियों की एक सूची है ।

5

jiayow जवाब के अलावा आप स्थानीय संस्करण प्राप्त करने के लिए अपने कस्टम 'खाका' निर्दिष्ट कर सकते हैं:

NSLocale *enLocale = [NSLocale localeWithLocaleIdentifier:@"en_US"]; 
NSLocale *deLocale = [NSLocale localeWithLocaleIdentifier:@"de"]; 

// en_US: MMM dd, yyyy 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"ddMMMyyyy" options:0 locale:enLocale]; 
// de:  dd. MMM yyyy 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"ddMMMyyyy" options:0 locale:deLocale]; 

// en_US: MM/dd/yyyy 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"ddyyyyMM" options:0 locale:enLocale]; 
// de:  dd.MM.yyyy 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"ddyyyyMM" options:0 locale:deLocale]; 

// en_US MM/dd 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MMdd" options:0 locale:enLocale]; 
// de:  dd.MM. 
formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MMdd" options:0 locale:deLocale]; 
: अमेरिका/डे स्थान के लिए

+ (NSString *)formattedDate:(NSDate *)date usingTemplate:(NSString *)template { 
    NSDateFormatter* formatter = [NSDateFormatter new]; 

    formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:template options:0 locale:formatter.locale]; 

    return [formatter stringFromDate:date]; 
} 

उदाहरण उपयोग

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