这个问题在这里已有答案:
我想查看今天的日期与其他日期在String
,如果两者都是等于那么需要执行一些任务。
我试过date1 < date2
,但它是在比较日期,我想要同等的检查
使用下面的代码检查相同的日期
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!!!")
}
日期很复杂......让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)
等等...
无论哪个时区,正在使用哪种日历类型等,这都将有效...
比较两个日期字符串,
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)!
}
}