Xcode 9 • स्विफ्ट 4 या Xcode 8.3.2 • स्विफ्ट 3.1
आप इस प्रकार NSDataDetector उपयोग कर सकते हैं:
असल में यह है कि क्या मैं अब तक किया है
extension String {
var nsString: NSString { return self as NSString }
var length: Int { return nsString.length }
var nsRange: NSRange { return NSRange(location: 0, length: length) }
var detectDates: [Date]? {
return try? NSDataDetector(types: NSTextCheckingResult.CheckingType.date.rawValue)
.matches(in: self, range: nsRange)
.flatMap{$0.date}
}
}
extension Collection where Iterator.Element == String {
var dates: [Date] {
return flatMap{$0.detectDates}.flatMap{$0}
}
}
परीक्षण:
let dateStrings = ["January 3, 1966","Jan 3, 1966", "3 Jan 1966"]
for dateString in dateStrings {
if let dateDetected = dateString.detectDates?.first {
print(dateDetected)
// 1966-01-03 14:00:00 +0000
// 1966-01-03 14:00:00 +0000
// 1966-01-03 14:00:00 +0000
}
}
let dateStrings = ["January 3, 1966","Jan 3, 1966", "3 Jan 1966"]
for date in dateStrings.dates {
print(date)
// 1966-01-03 14:00:00 +0000
// 1966-01-03 14:00:00 +0000
// 1966-01-03 14:00:00 +0000
}
स्रोत
2015-09-15 21:27:16
कृपया अपनी समस्या के उदाहरणों और समाधान जो आपने कोशिश की हो, के साथ कुछ कोड स्निपेट जोड़ें। – Nishant
दिनांक कोड के अन्य संभावित मूल्य क्या हैं जिन्हें आप अपने कोड में संभालना चाहते हैं? – Nishant
मुझे सभी संभावित विविधताओं को नहीं पता है, लेकिन यह '3 जनवरी, 1 9 66' या '3 जनवरी, 1 9 66' या '3 जनवरी 1 9 66' जैसी चीजें हो सकती है। – user49hc