स्विफ्ट (3.x) तिथि एक्सटेंशन के रूप में दो सबसे लोकप्रिय समाधान के संस्करण:
extension Date {
static var is24HoursFormat_1 : Bool {
let dateString = Date.localFormatter.string(from: Date())
if dateString.contains(Date.localFormatter.amSymbol) || dateString.contains(Date.localFormatter.pmSymbol) {
return false
}
return true
}
static var is24HoursFormat_2 : Bool {
let format = DateFormatter.dateFormat(fromTemplate: "j", options: 0, locale: Locale.autoupdatingCurrent)
return !format!.contains("a")
}
private static let localFormatter : DateFormatter = {
let formatter = DateFormatter()
formatter.locale = Locale.autoupdatingCurrent
formatter.timeStyle = .short
formatter.dateStyle = .none
return formatter
}()
}
उपयोग:
Date.is24HoursFormat_1
Date.is24HoursFormat_2
स्विफ्ट (2।0) NSDate एक्सटेंशन के रूप में दो सबसे लोकप्रिय समाधान के संस्करण:
extension NSDate {
class var is24HoursFormat_1 : Bool {
let dateString = NSDate.localFormatter.stringFromDate(NSDate())
if dateString.containsString(NSDate.localFormatter.AMSymbol) || dateString.containsString(NSDate.localFormatter.PMSymbol) {
return false
}
return true
}
class var is24HoursFormat_2 : Bool {
let format = NSDateFormatter.dateFormatFromTemplate("j", options: 0, locale: NSLocale.autoupdatingCurrentLocale())
return !format!.containsString("a")
}
private static let localFormatter : NSDateFormatter = {
let formatter = NSDateFormatter()
formatter.locale = NSLocale.autoupdatingCurrentLocale()
formatter.timeStyle = .ShortStyle
formatter.dateStyle = .NoStyle
return formatter
}()
}
कृपया ध्यान दें कि एप्पल NSDateFormatter (Date Formatters) पर निम्नलिखित कहते हैं:
एक तारीख फ़ॉर्मेटर बनाना एक सस्ते आपरेशन नहीं है। यदि आप अक्सर एक फॉर्मेटर का उपयोग करने के लिए की संभावना रखते हैं, तो यह कई उदाहरणों को बनाने और निपटाने के बजाय को कैश करने के लिए आमतौर पर अधिक कुशल होता है। एक दृष्टिकोण एक स्थिर चर का उपयोग करना है।
स्थिर के लिए कारण यही
दूसरी बात आप NSLocale.autoupdatingCurrentLocale() (is24HoursFormat_1 के लिए), इस तरह आप हमेशा वास्तविक वर्तमान स्थिति मिल जाएगा का उपयोग करना चाहिए करते हैं।
वाह, धन्यवाद। मैंने एक Google खोज की जो आम तौर पर स्टैक ओवरफ़्लो परिणाम दिखाता है लेकिन मैं पूरी तरह खाली हो गया! – Darren