Date conversion is always nil in iPhone 24hr date format

Tes*_*est -1 xcode nsdateformatter ios swift3

i trying to convert string to Date which is properly working in 12hr date format. when i switch the device date format to 24, its always returning nil. Please check the below code

    let formatter = DateFormatter()
    formatter.dateFormat = "h:mm a"
    let date = formatter.date(from: "6:00 am")
Run Code Online (Sandbox Code Playgroud)

mag*_*zbc 5

根据技术问答 QA1480

如果您使用的是固定格式的日期,您应该首先将日期格式化程序的语言环境设置为适合您的固定格式的内容。在大多数情况下,要选择的最佳语言环境是“en_US_POSIX”,这是一种专门设计用于产生美国英语结果而不管用户和系统偏好的语言环境。

因此,为了防止使用设备的区域设置解释日期,您需要设置您的locale属性DateFormatter

let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "hh:mm a"
let date = formatter.date(from: "6:00 am")
Run Code Online (Sandbox Code Playgroud)

注意:设置locale之前设置很重要dateFormat