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

标签 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: "")

然后更改我的格式以反射(reflect)这一点

formatter.dateFormat = "ddMMyyHHmmss"

现在控制台输出是

TIME IS 291015-12:10:12
PARSING Optional("291015121012")
RESULT nil

我也尝试添加行

formatter.locale = NSLocale.currentLocale()

奇怪的是,该应用程序在 iOS 9 上运行完美,我认为它在 iOS 8 上也能正常运行。

最佳答案

原来这个问题与 iOS 无关,这是因为我的 ios7 设备恰好在设备设置中处于 12 小时模式。这使格式化程序感到困惑。使用

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

按照@WiliamKinaan 的建议修复了这个问题

关于ios - NSDateFormatter 在 iOS 7 上失败,适用于更高版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413973/

相关文章:

ios - Swift iOS - 循环运行速度是否比 Date().timeIntervalSince1970 生成的日期秒快

ios - applicationWillResignActive 在 iOS 10 ( swift 3 ) 上无故调用

ios - 多个 View Controller 中的 WatchConnectivity session

swift - 模块最小部署目标捕手

ios-检查当前时间是否在两个时间之间

iphone - 将 NSDate 设置为特定日期、时间和时区

ios - 如何缩放我的 imagePickerController 相机以使其填满整个屏幕?

ios - CLLocation 距离跟踪开始时不正确

ios - UIPageViewController 从子 UIViewController 上的控件过渡

ios - 如何将我的表格 View 上下颠倒,以便新添加的单元格出现在顶部而不是按钮?