ios - 将时间从字符串转换为日期仅在模拟器上崩溃

标签 ios swift nsdateformatter

目前我正在使用此代码将时间从 String 转换为 Date:

public static func dateFromTime(_ time: String) -> Date {
    let formatter = DateFormatter()
    formatter.dateFormat = "k:mm"
    formatter.locale = NSLocale.current

    return formatter.date(from: time)!
}

这在我的设备上有效,但在模拟器上崩溃了。据我所知,它们都使用 12 小时格式。

此方法在崩溃时收到的字符串是"5:30 AM"

此代码可能在模拟器而非设备上崩溃的任何其他原因?

最佳答案

您的代码因日期格式不正确而崩溃!

对于 ,"5:30 AM" 使用 "h:mm a" ,而不是 "k:mm"

为避免任何类型的崩溃,请像下面这样更新您的代码。 .

public static func dateFromTime(_ time: String) -> Date {
        let formatter = DateFormatter()
        formatter.dateFormat = "h:mm a"
        formatter.locale = NSLocale.current
        if let date = formatter.date(from: time)
        {
            return date
        }
        print("Invalid arguments ! Returning Current Date . ")
        return Date()
    }

关于ios - 将时间从字符串转换为日期仅在模拟器上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393024/

相关文章:

objective-c - 可靠地检查 NSDate 是否在给定的小时、天或周内

ios - UIWebView ContentSize高度

ios - ViewController 内容大小不会改变弹出窗口大小

iphone - 更改 UINavigationBar 的颜色

objective-c - 如何找到 Obj-C 枚举的 Swift 翻译

iphone - 将 uidatepicker 格式化为另一个 nsdate

swift - 如何获取应用程序不支持的用户首选语言

ios - 如何在 UITableView 的底部只设置一个 Table Cell?

ios - Swift Eureka 隐藏更改部分

ios - 核心数据迁移: Could not cast value of type 'NSManagedObject_MyType' to 'MyModule.MyType'