Earlier quoted context omitted.
But using UTC solves that problem, no? The time only changes in DST but not in UTC. If the code checks the time against UST, it will never trip up. Anyways, the only real solution for managing time is to use a library like Luxon so you can stop thinking about it. Time is like cryptographic encryption - Don't roll your own solution if there is a battle tested library available.
It was checking for something like “is it 9am in PST / PDT right now? What about EST / EDT?” Or maybe, “what’s the current time in this list of time zones and then I’ll send notifications to users where it’s 9am” Or something, I don’t specifically remember. The point is that notifications aren’t generated until they’re supposed to be sent, and we didn’t want that to vary by 1 hour with daylight savings. And this spec…
Script 1: send notification to User 123 at 9:00 UTC
Script 2: It is 9:00 UTC, which users are due to have notifications that have not been sent?
This way, the timezones don't ever really come into play. The axiom I follow for dealing with time is collect and display time in user's local time but store and process in UTC.