温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ios - Comparing NSDates without time component
ios swift time nsdate foundation

ios - 比较没有时间分量的NSDate

发布于 2020-03-28 23:30:11

在一个快速的操场上,我一直在使用

NSDate.date() 

但是,这总是与附加的时间元素一起出现。对于我的应用程序,我需要忽略时间元素。在Swift中有可能吗?如何做呢?即使我可以将时间元素设置为在每个日期都可以使用的相同时间,也可以。

另外,我想比较两个日期,此刻我正在使用以下代码:

var earlierDate:NSDate = firstDate.earlierDate(secondDate)

这是唯一的方法还是我可以忽略时间元素的方式进行操作?例如,如果它们是同一天,但时间不同,那么我不希望得到结果。

查看更多

查看更多

提问者
agf119105
被浏览
71
Ashley Mills 2018-10-22 18:17

使用此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