this post was submitted on 03 Apr 2024
1092 points (96.2% liked)

Programmer Humor

19623 readers
2719 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] uis@lemm.ee 4 points 7 months ago* (last edited 7 months ago) (1 children)

time always goes forward

It not always goes and not always forward. I think you need metric time(TAI) instread.

[–] arc@lemm.ee 5 points 7 months ago* (last edited 7 months ago) (1 children)

UTC always goes forward regardless of the timezone and local time. That is why you should use it. To take my EPG situation above, I stored program start / end times in UTC so they would render properly even if DST kicked in or not during the middle of the program.

[–] uis@lemm.ee 2 points 7 months ago* (last edited 7 months ago) (1 children)

Ok, this is more unix time quirk that can't handle 24:00:00 and skipping 23:59:59.

UTC always goes forward regardless of the timezone and local time

But not unix time.

I stored program start / end times in UTC

If your program finishes in less than one seond it might report negative time.

[–] arc@lemm.ee 4 points 7 months ago (1 children)

I didn't say Unix time, I said UTC. And no it won't report negative time, not unless somehow the system clock was modified while it was running..

[–] uis@lemm.ee 1 points 7 months ago* (last edited 7 months ago) (1 children)

not unless somehow the system clock was modified while it was running..

Which is how most systems handle leap seconds.

[–] arc@lemm.ee 0 points 7 months ago* (last edited 7 months ago) (1 children)

Leap seconds still make time go forwards, not backwards. NTP clients would also resolve small time discrepancies while still advancing forwards prior to the next time sync.

[–] uis@lemm.ee 1 points 7 months ago* (last edited 7 months ago) (1 children)

Leap seconds can make time go both ways, but adding them makes time stop/go back because 24:00:00 cannot be represented as 1/86400 part of day N instead of day N+1 on major OSes. And they were only added so far.

[–] arc@lemm.ee 1 points 7 months ago* (last edited 7 months ago) (1 children)

It doesn't work like that. UTC goes forward always. Leap seconds are scheduled and known in advance. NTP time services will just smear time advancement a little to account for an additional second. Time never has to go backwards. This is how Google does it.

[–] uis@lemm.ee 1 points 7 months ago

This is how Google does it in their datacenters, but not major OSes by default