2011-02-23 7 views
11

मैं प्रारूप "2/22/11" में एक NSString तारीख लेने के लिए और यह इस प्रारूप में बदलने की कोशिश कर रहा हूँ: 2011-02-22NSDateFormatter और yyyy-MM-dd

यह मेरा कोड है: एक NSString बराबर के रूप में

NSDate *dateTemp = [[NSDate alloc] init]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
dateTemp = [dateFormat dateFromString:newInvoice.date]; 
newInvoice.date = [dateFormat stringFromDate:dateTemp]; 

newInvoice.date शुरू होता है "2/22/11" करने के लिए। dateTemp शून्य समाप्त होता है। newInvoice.date एनआईएल भी समाप्त होता है।

मैं अपने जीवन के लिए क्यों नहीं समझ सकता कि क्यों।

उत्तर

25

आपको इस समस्या का सामना करना पड़ रहा है क्योंकि आपकी डेट फॉर्मेटर सही नहीं है। अपनी नईInvoice.date परिवर्तनीय स्टोर का उपयोग करें "11:02:23" आपकी तिथिफॉर्मेटर @ "yy: MM: dd" होना चाहिए और यदि आपका newInvoice.date चर की दुकान "2/22/11" फिर अपने dateFormatter "MM/dd/yy" होना चाहिए @

NSDate *dateTemp = [[NSDate alloc] init]; 
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init]; 
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 

[dateFormat1 setDateFormat:@"MM/dd/yy"]; 
[dateFormat2 setDateFormat:@"yyyy-MM-dd"]; 

dateTemp = [dateFormat1 dateFromString:newInvoice.date]; 
newInvoice.date = [dateFormat2 stringFromDate:dateTemp]; 

दोनों प्रारूप अपने आवश्यकता के अनुसार किया जाना चाहिए सही परिणाम

+2

आईई, आपको 2 फॉर्मेटर्स की आवश्यकता है: एक में, एक के लिए बाहर। – Wevah

1

यह ठीक काम करना चाहिए पाने के लिए । मैंने तिथि शैली निर्धारित की है। आप NSDateFormatterShortStyle को किसी और चीज़ में बदल सकते हैं। अपने newInvoice.date प्रारूप को भी देखें।

NSDate *dateTemp = [[NSDate alloc] init]; 

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

[dateFormat setDateStyle: NSDateFormatterShortStyle]; 

dateTemp = [dateFormat dateFromString: newInvoice.date]; 

[dateFormat setDateFormat:@"yyyy-MM-dd"]; 

newInvoice.date = [dateFormat stringFromDate:dateTemp];