我正在尝试使用以下代码以“ddMMyy-HH:mm:ss”格式解析字符串
static func parseDate(var date: String?) -> NSDate?{
if(date == nil){
return nil
}
print("PARSING \(date)")
let formatter = NSDateFormatter()
formatter.dateFormat = "ddMMyy-HH:mm:ss"
let res = formatter.dateFromString(date!)
print("RESULT \(res)")
return res
}
res的值最后是nil,即使date不是nil。然后我尝试使用
删除:和 - 符号 date = date!.stringByReplacingOccurrencesOfString(":", withString: "")
date = date!.stringByReplacingOccurrencesOfString("-", withString: "")
然后更改我的格式以反映此
formatter.dateFormat = "ddMMyyHHmmss"
控制台输出现在是
TIME IS 291015-12:10:12
PARSING Optional("291015121012")
RESULT nil
我也尝试添加行
formatter.locale = NSLocale.currentLocale()
奇怪的是,该应用程序在iOS 9上完美运行,我认为它也适用于8。
答案 0 :(得分:0)
原来这个问题与iOS无关,这与我的ios7设备恰好在设备设置中处于12小时模式的事实有关。这混淆了格式化程序。使用
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
正如@WiliamKinaan所建议的那样