date比较或时区未正确设置

我试图做一个简单的比较date的意图移动到另一个数组索引的基础上的一天。

尽pipe比我使用的代码更高效,但以下( 无法parsingdate )不会保留时区偏移:

let noaaDate = "2014-08-22T15:00:00-04:00" let format="yyyy-MM-dd'T'HH:mm:ssZ" var dateFmt = NSDateFormatter() dateFmt.dateFormat = format let newreadableDate = dateFmt.dateFromString(noaaDate) println(newreadableDate) 

输出:

 Optional(2014-08-22 19:00:00 +0000) 

当我添加以下内容:

 dateFmt.timeZone = NSTimeZone.localTimeZone() // I've even tried defaultTimeZone 

输出是一样的。 哪里这似乎成为一个问题是以后我做了以下事情:

 // FYI: parseNOAADateTime is that code above var earliestTimeNS = parseNOAADateTime(earliestTime!) let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitDay, fromDate: earliestTimeNS) let dayZero = components.day // stuff, like starting a loop let tempDateTimeString = "2014-08-31T01:00:00-04:00" let thisDateTime = parseNOAADateTime(tempDateTimeString!) let tempDateTimeComponents = calendar.components(.CalendarUnitDay, fromDate: thisDateTime) let forecastIndex = tempDateTimeComponents.day - dayZero 

现在,forecastIndex应该是6,因为tempDateTimeComponents.day应该是31.但是,他们分别是5和30,这意味着4小时的数据价值是以前一天的数据结束的。

我在哪里搞乱?

谢谢