दिलचस्प पोस्ट
मौजूदा सबवर्सन बिल्ड नंबर कैसे पहुंचें? कैसे सीएसएस यूआरएल में रिश्तेदार / पूर्ण पथ का उपयोग करें? तो सी ++ 11 में क्यों मैं = ++ आई + 1 अच्छी तरह से परिभाषित है? विंडोज पर माइक्रोसॉन्ड रिज़ॉल्यूशन टाइमस्टैम्प जावा में स्ट्रिंग सरणी प्रारंभ करना फ़ंक्शन, एक अनबाउंड विधि और एक बाध्य विधि के बीच अंतर क्या है? XPath: पाठ नोड का चयन करें MySQL में प्रारंभिक मान और ऑटो वेतन वृद्धि कैसे सेट करें? संचार त्रुटि क्या है: Xcode 6 में OS_xpc_error? ASP.NET वेब फ़ॉर्म के साथ निर्भरता इंजेक्शन का उपयोग कैसे करें स्थैतिक चर initialisation आदेश कोड समीक्षा के बाद पुल अनुरोध को अपडेट करने के लिए पसंदीदा गिथूब वर्कफ़्लो कैसे एंड्रॉइड में सर्किल कस्टम प्रगति पट्टी बनाने के लिए HTML5 वीडियो टैग के लिए समर्थित वीडियो प्रारूपों का पता कैसे लगाया जाता है? प्रोसेस () कॉल समाप्त होने से पहले स्विंगवॉर्कर, किया गया () किया जाता है

NSString को NSDate में परिवर्तित करना (और वापस दोबारा) स्विफ्ट 4 समाधान उपलब्ध है

मैं एनएसएसटीइंग / String जैसे " 01/02/10 " (1 फरवरी 2010 का अर्थ) एनएसडीट / Date कैसे बदलूंगा ? और मैं एक स्ट्रिंग में फिर से तारीख को कैसे बदल सकता हूं?

वेब के समाधान से एकत्रित समाधान "NSString को NSDate में परिवर्तित करना (और वापस दोबारा) स्विफ्ट 4 समाधान उपलब्ध है"

स्विफ्ट 4 और बाद में

अपडेट किया गया: 16 नवंबर 2017

स्ट्रिंग टू डेट

 var dateString = "02-03-2017" var dateFormatter = DateFormatter() // This is important - we set our input date format to match our input string // if the format doesn't match you'll get nil from your string, so be careful dateFormatter.dateFormat = "dd-MM-yyyy" //`date(from:)` returns an optional so make sure you unwrap when using. var dateFromString: Date? = dateFormatter.date(from: dateString) 

स्ट्रिंग को दिनांक

 var formatter = DateFormatter() formatter.dateFormat = "dd-MM-yyyy" guard let unwrappedDate = dateFromString else { return } //Using the dateFromString variable from before. let stringDate: String = formatter.string(from: dateFromString) 

स्विफ्ट 3

अपडेट किया गया: 20 जुलाई 2017

स्ट्रिंग टू एनएसडीटेट

 var dateString = "02-03-2017" var dateFormatter = DateFormatter() // This is important - we set our input date format to match our input string // if the format doesn't match you'll get nil from your string, so be careful dateFormatter.dateFormat = "dd-MM-yyyy" var dateFromString = dateFormatter.date(from: dateString) 

NSDate को स्ट्रिंग

 var formatter = DateFormatter() formatter.dateFormat = "dd-MM-yyyy" let stringDate: String = formatter.string(from: dateFromString) 

तीव्र

अपडेट किया गया: 22 अक्टूबर 2015

स्ट्रिंग टू एनएसडीटेट

 var dateString = "01-02-2010" var dateFormatter = NSDateFormatter() // this is imporant - we set our input date format to match our input string dateFormatter.dateFormat = "dd-MM-yyyy" // voila! var dateFromString = dateFormatter.dateFromString(dateString) 

NSDate को स्ट्रिंग

 var formatter = NSDateFormatter() formatter.dateFormat = "dd-MM-yyyy" let stringDate: String = formatter.stringFromDate(NSDate()) println(stringDate) 

उद्देश्य सी

NSString को NSDate

 NSString *dateString = @"01-02-2010"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy"]; NSDate *dateFromString = [dateFormatter dateFromString:dateString]; 

NSDate NSString में कनवर्ट करें:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy"]; NSString *stringDate = [dateFormatter stringFromDate:[NSDate date]]; NSLog(@"%@", stringDate); 

उस के लिए एक NSString एक्सटेंशन बनाया

 // Simple as this. date = dateString.dateValue; 

NSDataDetector के लिए धन्यवाद, यह प्रारूप का एक पूरा बहुत पहचानता है

 '2014-01-16' dateValue is <2014-01-16 11:00:00 +0000> '2014.01.16' dateValue is <2014-01-16 11:00:00 +0000> '2014/01/16' dateValue is <2014-01-16 11:00:00 +0000> '2014 Jan 16' dateValue is <2014-01-16 11:00:00 +0000> '2014 Jan 16th' dateValue is <2014-01-16 11:00:00 +0000> '20140116' dateValue is <2014-01-16 11:00:00 +0000> '01-16-2014' dateValue is <2014-01-16 11:00:00 +0000> '01.16.2014' dateValue is <2014-01-16 11:00:00 +0000> '01/16/2014' dateValue is <2014-01-16 11:00:00 +0000> '16 January 2014' dateValue is <2014-01-16 11:00:00 +0000> '01-16-2014 17:05:05' dateValue is <2014-01-16 16:05:05 +0000> '01-16-2014 T 17:05:05 UTC' dateValue is <2014-01-16 17:05:05 +0000> '17:05, 1 January 2014 (UTC)' dateValue is <2014-01-01 16:05:00 +0000> 

एपीपीज़! किट का हिस्सा, गीथहब से वर्ग NSString + EPPZKit.h को पकड़ो।


मूल उत्तर: चाहे आप स्ट्रिंग में मौजूद दिनांक प्रारूप के बारे में सुनिश्चित नहीं हैं (या ध्यान न दें), पार्सिंग की तारीख के लिए NSDataDetector का उपयोग करें

 //Role players. NSString *dateString = @"Wed, 03 Jul 2013 02:16:02 -0700"; __block NSDate *detectedDate; //Detect. NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingAllTypes error:nil]; [detector enumerateMatchesInString:dateString options:kNilOptions range:NSMakeRange(0, [dateString length]) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { detectedDate = result.date; }]; 

Xcode 8.3.2 • स्विफ्ट 3.1

 extension Formatter { static let customDate: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "dd/MM/yy" return formatter }() static let time:DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "HH:mm" return formatter }() static let weekdayName: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "cccc" return formatter }() static let month: DateFormatter = { let formatter = DateFormatter() formatter.dateFormat = "LLLL" return formatter }() } 

 extension Date { var customDate: String { return Formatter.customDate.string(from: self) } var customTime: String { return Formatter.time.string(from: self) } var weekdayName: String { return Formatter.weekdayName.string(from: self) } var monthName: String { return Formatter.month.string(from: self) } } extension String { var customDate: Date? { return Formatter.customDate.date(from: self) } } 

उपयोग:

 Date().customTime // "16:50" Date().customDate // "06/05/17" Date().weekdayName // "Saturday" Date().monthName // "May" let dateString = "01/02/10" if let date = dateString.customDate { print(Formatter.customDate.string(from: date)) // "01-02-10\n" } 

यहां यह सभी तत्व हैं जिन्हें आप आवश्यकतानुसार अनुकूलित करने के लिए उपयोग कर सकते हैं:

यहां छवि विवरण दर्ज करें

क्यों NSString में एक श्रेणी नहीं जोड़ते हैं?

 // NSString+Date.h @interface NSString (Date) + (NSDate*)stringDateFromString:(NSString*)string; + (NSString*)stringDateFromDate:(NSDate*)date; @end // NSString+Date.m NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; NSDate *date = [dateFormatter dateFromString:stringDate ]; [dateFormatter release]; + (NSDateFormatter*)stringDateFormatter { static NSDateFormatter* formatter = nil; if (formatter == nil) { formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; } return formatter; } + (NSDate*)stringDateFromString:(NSString*)string { return [[NSString stringDateFormatter] dateFromString:string]; } + (NSString*)stringDateFromDate:(NSDate*)date { return [[NSString stringDateFormatter] stringFromDate:date]; } // Usage (#import "NSString+Date.h") or add in "YOUR PROJECT".pch file NSString* string = [NSString stringDateFromDate:[NSDate date]]; NSDate* date = [NSString stringDateFromString:string]; 

एक वर्ष का प्रतिनिधित्व करने के लिए "10" का इस्तेमाल करना अच्छा नहीं है, क्योंकि यह 1 9 10, 1810 आदि हो सकता है। आपको उस के लिए 4 अंकों का प्रयोग करना चाहिए।

यदि आप तिथि को बदल सकते हैं

 yyyymmdd 

फिर आप इसका उपयोग कर सकते हैं:

 // Convert string to date object NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyyMMdd"]; NSDate *date = [dateFormat dateFromString:dateStr]; // Convert date object to desired output format [dateFormat setDateFormat:@"EEEE MMMM d, YYYY"]; dateStr = [dateFormat stringFromDate:date]; [dateFormat release]; 
 NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000"; // Convert string to date object NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"]; NSDate *date = [dateFormat dateFromString:dateStr]; [dateFormat release]; 
 // Convert string to date NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyyMMdd"]; NSDate *date = [dateFormat dateFromString:dateStr]; // Convert Date to string [dateFormat setDateFormat:@"EEEE MMMM d, YYYY"]; dateStr = [dateFormat stringFromDate:date]; [dateFormat release]; 
 NSString *mystr=@"Your string date"; NSCalendar *cal = [NSCalendar currentCalendar]; NSDate *now = [dateFormatter dateFromString:mystr]; Nslog(@"%@",now); 

यदि आप कोड के नीचे प्रारूप का उपयोग करना चाहते हैं:

 NSString *dateString = @"01-02-2010"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; // this is important - we set our input date format to match our input string // if format doesn't match you'll get nil from your string, so be careful [dateFormatter setDateFormat:@"dd-MM-yyyy"]; NSDate *dateFromString = [[NSDate alloc] init]; // voila! dateFromString = [dateFormatter dateFromString:dateString]; Nslog(@"%@",[dateFormatter dateFromString:dateString]); 

NSString से NSdate कनवर्ट करने के लिए इस पद्धति का उपयोग करें:

 -(NSDate *)getDateFromString:(NSString *)pstrDate { NSDateFormatter* myFormatter = [[NSDateFormatter alloc] init]; [myFormatter setDateFormat:@"dd/MM/yyyy"]; NSDate* myDate = [myFormatter dateFromString:pstrDate]; return myDate; } 

अगर कोई इन दिनों स्विफ्ट में ऐसा कुछ करने में रूचि रखता है, तो मुझे कुछ पर एक शुरुआत है, हालांकि यह सही नहीं है।

 func detectDate(dateString: NSString) -> NSDate { var error: NSError? let detector: NSDataDetector = NSDataDetector.dataDetectorWithTypes(NSTextCheckingType.Date.toRaw(), error: &error)! if error == nil { var matches = detector.matchesInString(dateString, options: nil, range: NSMakeRange(0, dateString.length)) let currentLocale = NSLocale.currentLocale() for match in matches { match.resultType == NSTextCheckingType.Date NSLog("Date: \(match.date.description)") return match.date } } return NSDate() } 

आप इसके लिए एक्सटेंशन का उपयोग कर सकते हैं।

 extension NSDate { //NSString to NSDate convenience init(dateString:String) { let nsDateFormatter = NSDateFormatter() nsDateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss" // Add the locale if required here let dateObj = nsDateFormatter.dateFromString(dateString) self.init(timeInterval:0, sinceDate:dateObj!) } //NSDate to time string func getTime() -> String { let timeFormatter = NSDateFormatter() timeFormatter.dateFormat = "hh:mm" //Can also set the default styles for date or time using .timeStyle or .dateStyle return timeFormatter.stringFromDate(self) } //NSDate to date string func getDate() -> String { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "dd, MMM" return dateFormatter.stringFromDate(self) } //NSDate to String func getString() -> String { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss" return dateFormatter.stringFromDate(self) } } 

तो जब निष्पादन वास्तविक कोड इस प्रकार दिखेगा

  var dateObjFromString = NSDate(dateString: cutDateTime) var dateString = dateObjFromString.getDate() var timeString = dateObjFromString.getTime() var stringFromDate = dateObjFromString.getString() 

कुछ चूक तरीके भी हैं लेकिन मुझे लगता है कि यह आपके द्वारा दिए गए प्रारूप के लिए काम नहीं करेगा

  -dateFromString(_:) -stringFromDate(_:) -localizedStringFromDate(_ date: NSDate, dateStyle dateStyle: NSDateFormatterStyle, timeStyle timeStyle: NSDateFormatterStyle) -> String 

NSString के लिए दिनांक

 NSString *dateString = [NSString stringWithFormat:@"%@",[NSDate date]]; NSLog(@"string: %@",dateString ); //2015-03-24 12:28:49 +0000 

NSString को NSDate

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"]; NSDate *date = [formatter dateFromString:dateString]; NSLog(@"date: %@", date); //015-03-24 12:28:49 +0000 

सबसे अच्छा अभ्यास अपने आप को एक सामान्य वर्ग बनाने के लिए है, जहां आप अपने सभी सामान्य उपयोग विधियों, लगभग सभी परियोजनाओं में उपयोगी विधियों को डालते हैं और यहां पर पीएपी द्वारा सुझाए गए कोड को जोड़ते हैं:

 + (NSDate *)getDateOutOfString:(NSString *)passedString andDateFormat:(NSString *)dateFormat{ NSString *dateString = passedString; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:dateFormat]; NSDate *dateFromString = [[NSDate alloc] init]; dateFromString = [dateFormatter dateFromString:dateString]; return dateFromString; } 

.. और इसी तरह अन्य सभी उपयोगी तरीकों के लिए

ऐसा करके आप ऐप के लिए एक साफ पुन: प्रयोज्य कोड का निर्माण शुरू करते हैं चीयर्स!

स्विफ्ट 2.2 के अनुसार

NSDate से स्ट्रिंग और स्ट्रिंग से आसानी से एनएसडीट प्राप्त कर सकते हैं। जैसे

पहले सेट तिथि फ़ॉर्मेटर

 let formatter = NSDateFormatter(); formatter.dateStyle = NSDateFormatterStyle.MediumStyle formatter.timeStyle = .NoStyle formatter.dateFormat = "MM/dd/yyyy" 

अब स्ट्रिंग से तारीख और इसके विपरीत प्राप्त करें।

 let strDate = formatter.stringFromDate(NSDate()) print(strDate) let dateFromStr = formatter.dateFromString(strDate) print(dateFromStr) 

अब आनंद लें

NSString NSDate या NSDate को NSString

 //This method is used to get NSDate from string //Pass the date formate ex-"dd-MM-yyyy hh:mm a" + (NSDate*)getDateFromString:(NSString *)dateString withFormate:(NSString *)formate { // Converted date from date string NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; [dateFormatter setDateFormat:formate]; NSDate *convertedDate = [dateFormatter dateFromString:dateString]; return convertedDate; } //This method is used to get the NSString for NSDate //Pass the date formate ex-"dd-MM-yyyy hh:mm a" + (NSString *)getDateStringFromDate:(NSDate *)date withFormate:(NSString *)formate { // Converted date from date string NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; [dateFormatter setDateFormat:formate]; NSString *convertedDate = [dateFormatter stringFromDate:date]; return convertedDate; } 

उपरोक्त उदाहरण केवल स्विफ्ट 3.0+ के लिए नहीं लिखे गए हैं

अपडेट – स्विफ्ट 3.0+ – स्ट्रिंग के लिए तिथि कन्वर्ट

 let date = Date() // insert your date data here var dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" // add custom format if you'd like var dateString = dateFormatter.string(from: date)