dateFromString 给出 nil,swift
dateFromString gives nil, swift
我正在尝试从字符串创建 NSDate 对象。我已经硬编码了我的字符串供您查看。当我在我的字符串上调用 dateFromString 时,结果将为 nil,并且由于展开 nil 而出现异常。
我在下面粘贴了我的代码。
知道如何以正确的方式做到这一点吗?
非常感谢!
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm"
let timeToParse = "19/10/2016 16:10"
let date = dateFormatter.dateFromString(timeToParse)
//date = nil?
dateFormatter.dateFormat = "yyyy/MM/dd hh:mmZZZ"
let dateWithUTC = dateFormatter.stringFromDate(date!)
您提供了 hh
小时数,但这需要 1-12 小时的格式(至少 2 位数字)。由于您使用的是 24 小时格式 (16:..
),因此您需要使用说明符 HH
,例如:
dateFormatter.dateFormat = "dd/MM/yyyy HH:mm"
还有:
- 避免显式解包可选值 (
!
),例如使用可选绑定 (if let ...
) 而不是,并且
- 考虑迁移到 Swift3:现已正式发布。
例如(Swift 3)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy HH:mm"
let timeToParse = "19/10/2016 16:10"
if let date = dateFormatter.date(from: timeToParse) {
print(date) // 2016-10-19 16:10:00 +0000
}
我正在尝试从字符串创建 NSDate 对象。我已经硬编码了我的字符串供您查看。当我在我的字符串上调用 dateFromString 时,结果将为 nil,并且由于展开 nil 而出现异常。 我在下面粘贴了我的代码。
知道如何以正确的方式做到这一点吗?
非常感谢!
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm"
let timeToParse = "19/10/2016 16:10"
let date = dateFormatter.dateFromString(timeToParse)
//date = nil?
dateFormatter.dateFormat = "yyyy/MM/dd hh:mmZZZ"
let dateWithUTC = dateFormatter.stringFromDate(date!)
您提供了 hh
小时数,但这需要 1-12 小时的格式(至少 2 位数字)。由于您使用的是 24 小时格式 (16:..
),因此您需要使用说明符 HH
,例如:
dateFormatter.dateFormat = "dd/MM/yyyy HH:mm"
还有:
- 避免显式解包可选值 (
!
),例如使用可选绑定 (if let ...
) 而不是,并且 - 考虑迁移到 Swift3:现已正式发布。
例如(Swift 3)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy HH:mm"
let timeToParse = "19/10/2016 16:10"
if let date = dateFormatter.date(from: timeToParse) {
print(date) // 2016-10-19 16:10:00 +0000
}