Swift (3.x) phiên bản của hai giải pháp phổ biến nhất trong hình thức cấp ngày:
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
}()
}
Cách sử dụng:
Date.is24HoursFormat_1
Date.is24HoursFormat_2
Swift (2.0) phiên bản của hai giải pháp phổ biến nhất dưới hình thức mở rộng 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
}()
}
Xin lưu ý rằng Apple nói sau trên NSDateFormatter (Date Formatters):
Tạo một định dạng ngày không phải là một hoạt động rẻ. Nếu bạn có khả năng là để sử dụng trình định dạng thường xuyên, thường là hiệu quả hơn để lưu vào bộ nhớ cache một cá thể đơn lẻ hơn là tạo và xử lý nhiều phiên bản. Một cách tiếp cận là sử dụng biến tĩnh.
Thats lý do tĩnh để
Thứ hai bạn nên sử dụng NSLocale.autoupdatingCurrentLocale() (đối với is24HoursFormat_1), như vậy bạn sẽ luôn luôn nhận được tình trạng hiện tại thực tế.
Wow, cảm ơn. Tôi đã thực hiện tìm kiếm trên Google thường hiển thị kết quả Stack Overflow nhưng tôi đã hoàn toàn trống! – Darren