ios - 将两个字符串转换为 NSDate

标签 ios swift

我正在尝试计算两个日期之间的时间。其中一个日期是今天,另一个日期是将来的某个日期。

问题是 future 的日期被分成两个字符串,第一个包含日期,另一个包含该日期的时间。当我将两个字符串组合成一个字符串并尝试将其转换为 NSDate 时,我得到了 Nil

我假设我的 date 变量有问题。

let eventDate: String? = "21 Aug Sun 2016"
let eventTime: String? = "9:00 PM"

let date : String? =  "\(eventDate!) \(eventTime!)"

    print(date!) // "21 Aug Sun 2016 9:00 PM"

    let formatter = NSDateFormatter()
    formatter.dateFormat = "dd MMM eee yyyy HH:MM a"
    formatter.AMSymbol = "AM"
    formatter.PMSymbol = "PM"

    if let dateTimeForEvent = formatter.dateFromString(date!) {
        print(dateTimeForEvent)
    }else {
        print("Error")// prints error

    }

最佳答案

两件事:

  1. 你的时间格式有误。它应该是 h:mm aHH 是两位数的 24 小时制。您有一个 1 位或 2 位数字的 12 小时制。 MM 代表一个两位数的月份。使用 mm 表示两位数的分钟。
  2. 如果您的日期和时间字符串总是英文,您需要将格式化程序的区域设置为英语区域。如果不这样做,您的代码将始终在任何使用英语以外语言的设备上返回一个 nil 日期。

关于ios - 将两个字符串转换为 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38907326/

相关文章:

ios - 在基于手机间隙/cordova 的 ios 应用程序中禁用 Webview 中输入字段的复制和粘贴。

swift - 以替代格式追加字符

带部分的 Swift 表格 View 显示单元格中的冗余数据

ios - snapchat 是如何实现设置下拉菜单的?

swift - 从 URL 检索并显示多个图像

ios - 如何使用弹出 View Controller 更新 UIView 上的属性?

ios - RefreshControl 释放时不流畅

objective-c - 滚动表格 View 时崩溃

ios - 如何正确识别一个典型事件

ios - 如何在 Swift 中获取存储在 NSMutableArray 中的 NSDictionary 元素?