时间格式 (hh:mm a) 不适用于 swift 4 中的 iOS 11.1.1
Time format (hh:mm a) not working for iOS 11.1.1 in swift 4
我正在转换时间格式 (hh:mm a)。它在所有其他版本上工作正常,但在 11.1.1
上出现错误
当我将当前 DateFormatter 更改为时间时,它仅提供 hh:mm
let dateFormatter: DateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm a"
// Set date format
// dateFormatter.timeStyle = .short
// Apply date format
let selectedtime: String = dateFormatter.string(from: sender.date)
self.timeTextField.text = selectedtime
//// It gives 02:57 only What is missing although it is working for all other version.
提前致谢!
我在 iOS 11.0.3 遇到了同样的问题。
我的时间格式 "h:mm a" 或 "hh:mm a" 与 "hh:mm" 完全一样,即显示“21:00”而不是“9:00 PM”或“09:00 PM”。
如何解决:
如果允许使用“21:00 PM”格式,您可以在日期格式字符串中大写小时标识符 "h",以及 "H:mm a" 或 "HH:mm a" 格式会起作用的!
但如果没有,请设置您的 dateFormatter "locale" 属性。在我的例子中是 dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_GB"];
Swift 解法: dateFormatter.locale = Locale(identifier: "en_GB")
之后我得到了“9:00 pm”字符串而不是错误的“21:00”。
或
dateFormatter.locale = NSLocale.system
我正在转换时间格式 (hh:mm a)。它在所有其他版本上工作正常,但在 11.1.1
上出现错误当我将当前 DateFormatter 更改为时间时,它仅提供 hh:mm
let dateFormatter: DateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm a"
// Set date format
// dateFormatter.timeStyle = .short
// Apply date format
let selectedtime: String = dateFormatter.string(from: sender.date)
self.timeTextField.text = selectedtime
//// It gives 02:57 only What is missing although it is working for all other version.
提前致谢!
我在 iOS 11.0.3 遇到了同样的问题。 我的时间格式 "h:mm a" 或 "hh:mm a" 与 "hh:mm" 完全一样,即显示“21:00”而不是“9:00 PM”或“09:00 PM”。
如何解决:
如果允许使用“21:00 PM”格式,您可以在日期格式字符串中大写小时标识符 "h",以及 "H:mm a" 或 "HH:mm a" 格式会起作用的!
但如果没有,请设置您的 dateFormatter "locale" 属性。在我的例子中是
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_GB"];
Swift 解法: dateFormatter.locale = Locale(identifier: "en_GB")
之后我得到了“9:00 pm”字符串而不是错误的“21:00”。
或
dateFormatter.locale = NSLocale.system