Swift - 将字符串转换为日期

Swift - Convert string to date

仅在 iOS 11+ 上,我有这个错误:当用户在 phone 小时设置中禁用 24 小时模式时,无法使用此代码解析我的字符串。

其他iOS版本没有问题...

格式化程序是否缺少强制 24 小时模式的内容?

变量 datebeginHour 来自网络服务。

// input date = 20171201
// input beginHour = 2359

let dateTimeFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "fr_FR")
dateFormatter.timeZone = TimeZone.autoupdatingCurrent
dateTimeFormatter.dateFormat = "yyyyMMdd HHmm"

if let date = dateTimeFormatter.date(from: date+" "+beginHour) {
    // ...
}

我认为在你的代码中,你没有使用正确的 dateFormatter, 请检查 dateTimeFormatter 和 dateFormatter,

let dateTimeFormatter = DateFormatter()
dateTimeFormatter.locale = Locale(identifier: "fr_FR")
dateTimeFormatter.timeZone = TimeZone.autoupdatingCurrent
dateTimeFormatter.dateFormat = "yyyyMMdd HHmm"

if let date = dateTimeFormatter.date(from: date+" "+beginHour) {
    // ...
}