Swift 为什么此字符串格式会导致nil NSDate?

Swift 为什么此字符串格式会导致nil NSDate?,swift,nsdate,nsdateformatter,Swift,Nsdate,Nsdateformatter,为什么realDate以零值结束 let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" let testString = "2015-07-01 05:00:00 +0000" let realDate = dateFormatter.dateFromString(testString) 因为它与日期格式不匹配。对于realDate您拥有的,它将是下一种格式:

为什么
realDate
以零值结束

    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let testString = "2015-07-01 05:00:00 +0000"
    let realDate = dateFormatter.dateFromString(testString)

因为它与日期格式不匹配。对于
realDate
您拥有的,它将是下一种格式:

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"

仅传递您在日期格式“2015-07-01”中定义的元素,或将其定义为“yyyy-MM-dd HH:MM:ss X”testString实际上来自真实日期。是否有一种方法可以在执行格式时忽略时间组件,以便我只有日期?@4thSpace您可以这样做
让testString=dateFormatter.stringFromDate(NSDate())
格式:
dateFormatter.dateFormat=“yyyy-MM-dd”
如果我理解您想要做什么。这将使字符串:
2016-02-26
类似。我实际上在做dateFormatter.dateFromString(“2015-07-01”)使用相同的格式。但它会创建额外的时间内容。有没有办法忽略时间部分?@4thSpace否,您可以在以后的工作中忽略这些时间值。您不能。如上所述,如果您尝试从格式化程序中删除时间组件,您将得到零。