Swift - 将字符串转换为日期

时间:2018-01-04 15:17:32

标签: ios swift date dateformatter

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

在其他iOS版本上,没有问题......

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

变量datebeginHour来自webservice。

// 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) {
    // ...
}

1 个答案:

答案 0 :(得分:1)

我认为在您的代码中,您没有使用正确的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) {
    // ...
}