NSDateFormatter在iOS 7上失败,适用于更高版本

时间:2015-10-29 12:15:40

标签: ios swift nsdate nsdateformatter

我正在尝试使用以下代码以“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。

1 个答案:

答案 0 :(得分:0)

原来这个问题与iOS无关,这与我的ios7设备恰好在设备设置中处于12小时模式的事实有关。这混淆了格式化程序。使用

    formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

正如@WiliamKinaan所建议的那样