在一个快速的操场上,我一直在使用
NSDate.date()
但是,这总是在添加时间元素的情况下出现。对于我的应用程序,我需要忽略时间元素。在Swift中有可能吗?如何做呢?即使我可以将time元素设置为在每个日期都相同的时间,也可以使用。
另外,我正在尝试比较两个日期,此刻我正在使用以下代码:
var earlierDate:NSDate = firstDate.earlierDate(secondDate)
这是唯一的方法还是我可以忽略时间元素的方式进行操作?例如,如果它们是同一天,但时间不同,那么我不希望得到结果。
使用此Calendar功能比较iOS 8.0+中的日期
Calendar
func compare(_ date1: Date, to date2: Date, toGranularity component: Calendar.Component) -> ComparisonResult
传递.day为单位
.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