this post was submitted on 03 Apr 2024
384 points (95.5% liked)

Programmer Humor

32394 readers
841 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 5 points 7 months ago (2 children)

Store times in UTC, convert in UI to locale's timezone with one of any of the millions of timezone libraries. If you're storing in local time, you're gonna have a bad time.

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago)

Timestamp in UTC

But for time of day, use local time and store separate column with the timezone name. Don't use timezone offsets since that doesn't work with DST. You're better off with something like America/New_York because God knows what 2030 will look like.

And if timezone are abolished, or DST, that's even more reason to store the timezone name.

[–] [email protected] 1 points 7 months ago (1 children)

It depends. If something needs to happen in local time (like, always at the same time regardless of daylights savings for example) you should be storing times in local timezone

[–] [email protected] 2 points 7 months ago (1 children)

Store in UTC with the tz offset and if you're using a modern tz library, that should handle it for you.

[–] [email protected] 2 points 7 months ago

tz offset is really not enough. You'd need to save the time zone id and/or offset, to have you library calculate deviations such as daylight savings.

Even that, that would break if the user moves and now what they setup is using their previous timezone.

Basically, I'm saying that storing the offset works most of the time, but not all of the time.