Dates and time zones
Also called UTC, Daylight saving
An instant is one point in time, everywhere. What a clock on the wall shows depends on where it is and on that place's current rules. Store instants in UTC and convert when you display. A time in the future, like a meeting, is different: store the wall-clock time and the place.
Tests run in one time zone, on a normal day. So an agent's date code passes, and then a birthday shows up a day early in New York, or a daily job runs an hour off for half the year. Two days a year, some wall-clock times exist twice or not at all. Ask what happens on those days.
“Store created_at as timestamptz. For the daily 09:00 reminder, store 09:00 and the IANA zone name, not an offset, and work out each next run from the calendar. Don't add 24 hours. Test it across the Europe/London clock changes of 29 March and 25 October 2026.”