Say I've got User A and User B:
User A lives in GMT 9:30
User B lives in GMT 2:00
I've trying to construct a date at 12:00AM GMT for both users, so at any point in the day, both users get can the same timeIntervalSince1970
.
In both timezones, constructing a date like
let date = Date()
date.timeIntervalSince1970 // 1650810600
Produces the same time, but if we try and shift the date
to the start of the day,
let date = Calendar.current.startOfDay(for: Date())
date.timeIntervalSince1970 // GMT 9:30 1650810600.0
// GMT 2:00 1650837600.0
As you can see they're different.
So how can I create a Date
object for 12:00 AM
in GMT 0
in two timezones and produce the same date?
CodePudding user response:
To create 12:00AM GMT for the current point in time you have to set the time zone of the calendar to GMT 0
var calendar = Calendar.current
calendar.timeZone = TimeZone(secondsFromGMT: 0)!
let date = calendar.startOfDay(for: Date())
date.timeIntervalSince1970