在一个快速的操场上,我一直在使用
NSDate.date()
但是,它总是附加时间元素出现。对于我的应用程序,我需要忽略时间元素。这在斯威夫特中可能吗?如何做呢?即使我可以将时间元素设置为每个日期的同一时间也可以。
另外,我正在尝试比较两个日期,目前我正在使用以下代码:
var earlierDate:NSDate = firstDate.earlierDate(secondDate)
这是唯一的方法还是我可以通过忽略时间因素的方式来做到这一点?例如,如果它们是同一天但不同时间,我不想要结果。
用这个Calendar
iOS 8.0+ 中比较日期的函数
func compare(_ date1: Date, to date2: Date, toGranularity component: Calendar.Component) -> ComparisonResult
通过.day
作为单位
使用该函数如下:
let now = Date()
// "Sep 23, 2015, 10:26 AM"
let olderDate = Date(timeIntervalSinceNow: -10000)
// "Sep 23, 2015, 7:40 AM"
var order = Calendar.current.compare(now, to: olderDate, toGranularity: .hour)
switch order {
case .orderedDescending:
print("DESCENDING")
case .orderedAscending:
print("ASCENDING")
case .orderedSame:
print("SAME")
}
// Compare to hour: DESCENDING
var order = Calendar.current.compare(now, to: olderDate, toGranularity: .day)
switch order {
case .orderedDescending:
print("DESCENDING")
case .orderedAscending:
print("ASCENDING")
case .orderedSame:
print("SAME")
}
// Compare to day: SAME
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)