检查具体日期是否为Swift日期(或已过日期)

检查具体日期是否为Swift日期(或已过日期),swift,nsdateformatter,Swift,Nsdateformatter,通过dateformatter,我如何编写一个函数来知道某个特定日期是否已过或是今天 示例:2020年3月8日 日期( 谢谢您可以: if Date() >= Calendar.current.dateWith(year: 2020, month: 3, day: 28) ?? Date.distantFuture { return true } else { return false } 其中dateWith(年:月:日:)定义为: extension Calendar

通过dateformatter,我如何编写一个函数来知道某个特定日期是否已过或是今天

示例:2020年3月8日

日期(

谢谢

您可以:

if Date() >= Calendar.current.dateWith(year: 2020, month: 3, day: 28) ?? Date.distantFuture {
    return true
} else {
    return false
}
其中
dateWith(年:月:日:)
定义为:

extension Calendar {
    func dateWith(year: Int, month: Int, day: Int) -> Date? {
        var dateComponents = DateComponents()
        dateComponents.year = year
        dateComponents.month = month
        dateComponents.day = day
        return date(from: dateComponents)
    }
}
此方法基本上返回指定年、月和日的
日期
,小时、分钟和秒分量均为0,即指定日的开始。换句话说,我正在检查现在这一刻是否在2020-03-28一天开始之后。

您可以执行以下操作:

if Date() >= Calendar.current.dateWith(year: 2020, month: 3, day: 28) ?? Date.distantFuture {
    return true
} else {
    return false
}
其中
dateWith(年:月:日:)
定义为:

extension Calendar {
    func dateWith(year: Int, month: Int, day: Int) -> Date? {
        var dateComponents = DateComponents()
        dateComponents.year = year
        dateComponents.month = month
        dateComponents.day = day
        return date(from: dateComponents)
    }
}

此方法基本上返回指定年、月和日的
日期
,小时、分钟和秒分量均为0,即指定日的开始。换句话说,我正在检查现在的时刻是否在2020-03-28日的开始之后。

你关心时区吗?@Sweeper no。重要的是,这是我的特定数据(显然要获取国家当前的本地数据)并与今天进行比较。因此,你想看看用户的本地时间是否已超过某个本地日期。对吗?@Sweeper我只想检查一下这个例子:今天>=8March2020。(因此是指特定日期)你关心时区吗?@Sweeper no。重要的是,这是我的特定数据(显然是为了获取国家当前的本地数据)并与今天进行比较。因此,你想看看用户的本地时间是否已过某个本地日期。对吗?@Sweeper我只想检查一下这个例子:今天>=8March2020。(因此指特定日期)