dateFromString无法在设置为24小时的iPhone上快速转换

Dav*_*ham 1 date-formatting ios swift

我正在尝试使用dateFormatter从字符串转换。当设置为12小时时,它在模拟器上可以正常工作,并且在我的手机上也可以正常工作,但是当我的手机设置为24小时时,则无法设置。(当模拟器设置为24小时时,它确实会设置)。

passedTime = "10:36 pm"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "h:mm a"
let pickerDate = dateFormatter.dateFromString(passedTime)
println(pickerDate)
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,当在模拟器上或手机上运行12小时后,它可以完美运行,但是当手机在24小时内运行时,它将显示nil。我已经阅读了有关语言环境设置的内容,但是当我在手机上运行该语言时,无论我处于12小时制还是24小时制,本地语言都是相同的。

小智 6

我遇到了完全相同的问题...非常令人沮丧。解决方案是设置日历的区域设置。对于Swift 3,它是:yourDateFormatter.locale = Locale(identifier: "en-US")


Bea*_*lle 1

请务必检查 12 小时/24 小时,并相应地设置格式化程序,使用“H”表示 24 小时,“h”表示 12 小时。

在此输入图像描述

该表取自Waracle.com 上的一篇博客文章,您可以在其中找到完整列表。