10
कृपया नीचे कोड और आउटपुट देखें।NSDateFormatter + dateFormatFromTemplate: विकल्प: लोकेल: बीयूजी?
NSDateComponents *dateComponents = [[[NSDateComponents alloc] init] autorelease];
[dateComponents setYear:2011];
[dateComponents setMonth:1];
[dateComponents setDay:1];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"YYYYMMMd" options:0 locale:[NSLocale currentLocale]]];
NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"Happy New Year: %@", dateString);
आउटपुट के लिए आप क्या उम्मीद करते हैं?
Happy New Year: Jan 1, 2011
लेकिन नतीजा है ...
Happy New Year: Jan 1, 2010
क्या गलत है? कृपया मदद करें ...
+1 विशेष रूप से, वाई वर्तमान सप्ताह का वर्ष है। 1 जनवरी, 2011 का सप्ताह 2010 से संबंधित है, इसलिए वाईवाईवाई 2010 का उत्पादन करता है। – ughoavgfhw
आपको बहुत धन्यवाद ~ – alforo
@ughoavgfhw: धन्यवाद। मुझे जवाब में अंतर को इंगित करना चाहिए क्योंकि यह भ्रमित हो सकता है क्योंकि "वाई" ज्यादातर समय "काम" करता है। अपरकेस "वाई" आपको बताता है कि आपकी तिथि किस हफ्ते में शुरू होती है। इसलिए अगर 1 जनवरी गुरुवार को है, तो "वाई" उस सप्ताह के * प्रारंभ * वर्ष (यानी सोमवार) का वर्ष देगा। 7 जनवरी या बाद के लिए, "वाई" एक ही परिणाम "वाई" के रूप में देगा, लेकिन निश्चित रूप से सही प्रारूपण पत्र का उपयोग पहले स्थान पर करना बेहतर है। – Anna