Swift version: 5.6
Apple’s Calendar
object gives us lots of useful methods for evaluating dates in various ways. One of the most useful is the method isDate(_:equalTo:toGranularity:)
, which lets us compare two dates at a specific level of granularity: do these two dates occur in the same minute? The same hour? Or day, week, year?
As an example, here are two dates for us to work with:
let first = Date.now
let second = Date.now.addingTimeInterval(10000)
We can now check whether those two occur within the same day, like this:
let sameDay = Calendar.current.isDate(first, equalTo: second, toGranularity: .day)
If all you want to do is check whether a date points to some time during today, you should use isDateInToday()
instead:
let isToday = Calendar.current.isDateInToday(first)
SPONSORED Still waiting on your CI build? Speed it up ~3x with Blaze - change one line, pay less, keep your existing GitHub workflows. First 25 HWS readers to use code HACKING at checkout get 50% off the first year. Try it now for free!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.