比较两个日期 - Swift
Compare two date - Swift
如何将不带 time
的 string
(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
}
如何将不带 time
的 string
(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
}