← Back to context

Comment by pseidemann

6 hours ago

What you call "cultural/political datetime" should be "standard time" (or maybe "civil time"):

https://en.wikipedia.org/wiki/Standard_time

But this is still different to a time someone enters into a calendar. Standard time can change its offset (to UTC) over time (e.g. DST), while a time in a calendar is fixed in the nominal sense.

"scientific datetime" is quite ambiguous, since I would consider science-level precision time to be TAI (International Atomic Time, what UTC uses as a reference), or maybe UT1, which is one variant of UT (Universal Time, unrelated to UTC), depending on the scientific field. For simple cases, UTC might be enough, so you could call this "UTC".

I think practically what matters for developers are three things:

- Standard time (dependent on timezone)

- UTC (the reference for standard times in the different timezones)

- Calendar times (seems to be called "floating time" [0]), just referring to a specific date and time, usually independent from both standard time and UTC, from the author's perspective (others viewing a foreign calendar might see times interpreted in their own timezone). Often scoped by physical location, but not necessarily.

[0]: https://www.w3.org/TR/timezone/#floating-times

, while a time in a calendar is fixed in the nominal sense.

The above scenario of fixed time regardless of DST/TZ changes is what I tried to call "cultural/political time". In other comments, I called it "appointment time".

What you call "calendar time", others will call it "time with calculated UTC offset". (Which then leads to more meta discussion of "no... calendar time is not UTC offset because ..." )

Both examples of our ambiguous labels causing more confusion is prime example of the industry not converging on good names to make devs aware of the difference.

>I think practically what matters for developers are three things:

That categorization is fine but is still obscuring the key issue: many developers think they can collapse all of your 3 types into one simple strategy of "always store it as UTC"