【发布时间】:2016-06-17 18:05:02
【问题描述】:
在我的一个应用程序中,我有从服务器获取多个数据的日期和时间。我已经在 tableview 中展示了这个。现在,我必须根据上一行和下一行的日期和时间差的某些条件为特定行找到一些空闲时间。诸如车辆的出发和到达以及两者之间的空闲时间之类的东西。我将向您显示问题发生的发布代码(仅适用于我有两个有效日期)。
let dFormater = NSDateFormatter()
dFormater.dateFormat = "ddMMMYYHHmm"
dFormater.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dFormater.timeZone = NSTimeZone(name: "GMT")
dFormater.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
print(startDate)
print(endDate)
if let validFdate : NSDate = dFormater.dateFromString(startDate) {
if let validLdate : NSDate = dFormater.dateFromString(endDate) {
print(validFdate)
print(validLdate)
let minutes = validLdate.minutesFrom(validFdate)
print("LO P & N \(indexPath.row)= \(minutes)")
let hour = minutes/60
let min = minutes%60
let fullTime = NSString.init(format: "%02d:%02d", Int(hour),Int(min))
strToReturn = fullTime as String
}
}
而日志是这样的
03JUN161411
04JUN160542
2015-12-20 08:41:00 +0000
2015-12-20 00:12:00 +0000
LO P & N 0= -509.0
04JUN160931
05JUN160506
2015-12-20 04:01:00 +0000
2015-12-19 23:36:00 +0000
LO P & N 0= -265.0
07JUN160530
07JUN162127
2015-12-20 00:00:00 +0000
2015-12-20 15:57:00 +0000
LO P & N 2= 957.0
08JUN160049
08JUN161616
2015-12-19 19:19:00 +0000
2015-12-20 10:46:00 +0000
LO P & N 1= 927.0
现在从这个记录的输出中,您可以看到认为前两个中有有效日期仍然显示错误的输出,因为有不同的日期,而在最后两个输出中有完美的输出,因为两个日期都是相同的日期。以及为什么它会更改日期月份和年份。见
03JUN161411
2015-12-20 08:41:00 +0000
(我只针对日期here提出了另一个问题)
【问题讨论】:
-
只看一眼,我觉得你的代码的圈复杂度非常高,如果不花宝贵的时间就很难解决问题。如果我记得 ios 为您提供了很多可以获取时差的函数,请尝试使用 NSTimeInterval 方法进行计算..
-
@mkumar,好的,让我编辑问题并只输入发布的代码,以便您理解问题
-
@Jaimish。从 jrturton 的回答中发现了一个问题。它的 yy 和 YY 期。
标签: ios swift date nsdateformatter