我尝试使用.nanosecond粒度比较两个NSDate:
let d1 = date1.absoluteDate // 501178812.31100011 (2016-11-18T16:20:12.311Z)
let d2 = date2.absoluteDate // 501178812.21199989 (2016-11-18T16:20:12.212Z)
let result = Calendar.current.compare(d1, to: d2, toGranularity: .nanosecond) // .orderedSame???
然而,当纳秒不同(d1 = 31100011和d2 = 21199989)时,比较结果为.orderedSame。 这是NSDate的错误还是与精度相关的问题?
我不确定这是一个错误,因为docs我发现:
“[NSDate] ...可以实现广泛而细粒度的日期和时间范围 值,精确到10000毫秒的日期 开的......“
但是......为什么然后比较方法允许纳秒作为粒度?