比较两个日期 - Swift

Compare two date - Swift

如何将不带 timestring (2019-11-02) 转换为 date format 并在不带 time 的情况下获得当前的 Date 设备compare一起?

您可以使用 dateFormatter 将字符串转换为日期,然后使用 if 语句与当前日期进行比较

import Foundation

//convert string to date

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let myDate = dateFormatter.date(from: "2019-11-02")


//convert today's date in the same formate

let currentFormatter = DateFormatter()
currentFormatter.dateStyle = .short
currentFormatter.dateFormat = "yyyy-MM-dd"
let today = currentFormatter.string(from: Date())
let todayDate = dateFormatter.date(from: today)

//Compare the two date's

if myDate == todayDate {
    print("ok")
}

除了上面使用日期的字符串表示之外,您实际上可以只使用日期本身。只需转换字符串即可得到 "start of day" 日期。 Calendar 有一个方法可以对日期执行相同的操作,允许您将转换后的字符串与 'today'

进行比较
func isDateToday(dateString: String) -> Bool {
  let df = DateFormatter()
  df.dateFormat = "yyyy-MM-dd"
  let date = df.date(from: dateString)
  let today = Calendar.current.startOfDay(for: Date())
  return date == today
}