未正确设置日期比较或时区

时间:2014-08-25 16:05:20

标签: ios datetime swift timezone nstimezone

我正在尝试对日期进行简单比较,以便根据当天移动到另一个数组索引。

虽然比我使用的代码效率高得多,但以下(Unable to parse a date)不保留时区偏移量:

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小时的数据最终会与前一天的数据结束。

我在哪里弄乱?

由于

0 个答案:

没有答案