如何检查特定日期的今天

时间:2019-04-17 10:45:26

标签: ios swift nsdate

我想检查今天的日期和String中的其他日期,如果两者相等,则需要执行一些任务。

我尝试过date1 < date2,但它正在比较日期,我希望进行同等检查

3 个答案:

答案 0 :(得分:1)

日期很复杂...让Apple为您完成... Calendar date comparison

let date1 = // some date
let date2 = // some date

let isSameDay = Calendar.current.isDate(date1, equalTo: date2, toGranularity: .day)
let isSameHour = Calendar.current.isDate(date1, equalTo: date2, toGranularity: .hour)
let isSameMonth = Calendar.current.isDate(date1, equalTo: date2, toGranularity: .month)

等...

无论使用哪个时区,使用哪种日历类型等等,该功能都将起作用。

答案 1 :(得分:-2)

比较两个日期字符串,

if date1.stringWithFormatter(dateFormat: "yyyy-MM-dd") == Date().stringWithFormatter(dateFormat: "yyyy-MM-dd") {
// today's date
}else{
// not today's date
}

extension Date {

    func stringWithFormatter(dateFormat: String) -> String {
        let formatter: DateFormatter = DateFormatter()
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = dateFormat
        return formatter.string(from: self)
    }
    func datefromString(string:String,dateFormat: String) -> Date {
        let formatter: DateFormatter = DateFormatter()
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = dateFormat
        return formatter.date(from: string)!
    }

}

答案 2 :(得分:-3)

使用下面的代码检查相等的日期

func getCurrentDate() -> String {

    let date = Date()
    let formatter = DateFormatter()
    formatter.dateFormat = "dd.MM.yyyy"
    let result = formatter.string(from: date)

    print(result)
    return result
}

现在检查您的日期

if self.getCurrentDate() == "01.01.2001" {
     \\Your stuff to be added
      print("Date found!!!")
}