如何在swift 3.0中比较日期?

Ash*_*nic 7 date-comparison swift3

我有两个约会,我想比较一下.我该如何比较日期?我必须约会对象.说modificateionDate老了updatedDate.

那么比较日期的最佳做法是什么?

Nir*_*v D 10

Date现在符合Comparable协议.所以你可以简单地使用<,>==比较两个Date类型的对象.

if modificateionDate < updatedDate {
     //modificateionDate is less than updatedDate
}
Run Code Online (Sandbox Code Playgroud)


Ash*_*lls 5

每个@NiravD的答案DateComparable。但是,如果您要与给定的粒度进行比较,则可以使用Calendarcompare(_:to:toGranularity:)

例…

let dateRangeStart = Date()
let dateRangeEnd = Date().addingTimeInterval(1234)

// Using granularity of .minute
let order = Calendar.current.compare(dateRangeStart, to: dateRangeEnd, toGranularity: .minute)

switch order {
case .orderedAscending:
    print("\(dateRangeEnd) is after \(dateRangeStart)")
case .orderedDescending:
    print("\(dateRangeEnd) is before \(dateRangeStart)")
default:
    print("\(dateRangeEnd) is the same as \(dateRangeStart)")
}

> 2017-02-17 10:35:48 +0000 is after 2017-02-17 10:15:14 +0000

// Using granularity .hour
let order = Calendar.current.compare(dateRangeStart, to: dateRangeEnd, toGranularity: .hour)

> 2017-02-17 10:37:23 +0000 is the same as 2017-02-17 10:16:49 +0000
Run Code Online (Sandbox Code Playgroud)