我正在尝试计算两个日期之间的时间。其中一个日期是今天,另一个日期是将来的某个日期。
问题是 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
}
最佳答案
两件事:
- 你的时间格式有误。它应该是
h:mm a
。HH
是两位数的 24 小时制。您有一个 1 位或 2 位数字的 12 小时制。MM
代表一个两位数的月份。使用mm
表示两位数的分钟。 - 如果您的日期和时间字符串总是英文,您需要将格式化程序的区域设置为英语区域。如果不这样做,您的代码将始终在任何使用英语以外语言的设备上返回一个
nil
日期。
关于ios - 将两个字符串转换为 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38907326/