从NSDate获得几分钟的时间

时间:2016-08-19 07:47:11

标签: ios swift nsdate

我在sqlite数据库中保存了一个日期。知道我试着得到时间和分钟。但是时间转移了2个。

print(calendar.timeZone)
while result.next() {
                var hour = 0
                var minute = 0
                let calendar = NSCalendar.currentCalendar()
                if #available(iOS 8.0, *) {
                    calendar.getHour(&hour, minute: &minute, second: nil, nanosecond: nil, fromDate: result.dateForColumn("time"))
                    print(result.dateForColumn("time"))
                    print("the hour is \(hour) and minute is \(minute)")
                }

            }

我得到以下输出:

Europe/Berlin (GMT+2) offset 7200 (Daylight)
2016-08-17 18:44:57 +0000
the hour is 20 and minute is 44
2016-08-18 18:44:57 +0000
the hour is 20 and minute is 44
2016-08-19 15:44:57 +0000
the hour is 17 and minute is 44
2016-08-18 16:44:57 +0000
the hour is 18 and minute is 44
2016-08-17 18:44:57 +0000
the hour is 20 and minute is 44
2016-08-18 18:44:57 +0000
the hour is 20 and minute is 44
2016-08-19 15:44:57 +0000
the hour is 17 and minute is 44
2016-08-18 16:44:57 +0000
the hour is 18 and minute is 44

时区是正确的。我尝试了另外两个解决方案。但它总是同样的问题。

1 个答案:

答案 0 :(得分:1)

result.dateForColumn("time")位于UTC,因为您有+0000而第二个输出位于另一个时区(Europe/Berlin (GMT+2)),因此日期相同。