melvitax / DateHelper

A Swift Date extension helper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bizarre time math on leap hour day (today)

ccavnor opened this issue · comments

let now: Date = Date()
let then: Date = now.adjust(second: 30)!
print("NOW: (now.toString(dateStyle: .full, timeStyle: .full)!)")
print("THEN: (then.toString(dateStyle: .full, timeStyle: .full)!)")

NOW: Sunday, March 12, 2023 at 11:42:48 AM Pacific Daylight Time
THEN: Sunday, March 12, 2023 at 11:42:30 AM Pacific Daylight Time

then is somehow 18 seconds BEHIND now. I understand neither the incorrect offset nor the negative time, but I strongly suspect that it has to do with today being a leap hour day (Spring forward in time).

if I instead do:
let then: Date = now + 30 // add 30 seconds

then all is as expected:

NOW: Sunday, March 12, 2023 at 11:50:08 AM Pacific Daylight Time
THEN: Sunday, March 12, 2023 at 11:50:38 AM Pacific Daylight Time