[HN Gopher] Falsehoods programmers believe about time ___________________________________________________________________ Falsehoods programmers believe about time Author : rrampage Score : 82 points Date : 2022-08-22 06:39 UTC (16 hours ago) (HTM) web link (gist.github.com) (TXT) w3m dump (gist.github.com) | RcouF1uZ4gsC wrote: | Is it just me, or does anybody else hate these "Falsehoods | programmers believe about..." lists. | | Every abstraction at some level is leaky. Even the atom is a | leaky abstraction, and maybe even matter itself is a leaky | abstraction at some level. | | What matters is how well the abstraction matches your use case, | and where the leaks are. | | Just having a list of how a particular abstraction leaks without | any context is not super helpful, IMO other than conveying a | sense of complexity (and perhaps a sense of looking down on those | unwashed masses who believe these "falsehoods"), | madamelic wrote: | Here's my tl;dr for "falsehoods programmers believe about [x]" | so you never have to read another: | | Don't make assumptions. You aren't smart. Keep it simple and | don't get clever. | elcamino44 wrote: | I think I understand why you feel this way, but I personally | find them to be a helpful format. For example, last time I had | to figure out how to store addresses in a database I made a | point to check out the falsehoods programmers believe about | addresses document (as well as other sources). | mnw21cam wrote: | > Britain uses GMT. | | Which Outlook in particular seems to get direly wrong. I have | lost count of the number of times I have been sent an email from | someone using Outlook containing a supposed calendar event in | summer which declares that it is at a particular time GMT. It's | wrong, and if I were to turn up at the time it stated, I would be | an hour late. | r00fus wrote: | Britain uses GMT only during winter. In summer it's BST | (British Summer Time). The fact that calendar clients can't | determine a timezone for a given jurisdiction on a given day is | actually something that I hate. | | https://en.wikipedia.org/wiki/British_Summer_Time | gillesjacobs wrote: | > GMT and UTC are the same timezone. | | I got one for OP, too: UTC is not a timezone in the first place | [1]. | | > UTC is not a time zone, but a time standard that is the basis | for civil time and time zones worldwide. This means that no | country or territory officially uses UTC as a local time. | | The difference is subtle, but a standard is not subject to | government whims while a timezone is. | | 1. https://www.timeanddate.com/time/gmt-utc- | time.html#:~:text=U.... | naniwaduni wrote: | Still subject to IERS whims, though. | kristopolous wrote: | The "opportunity for bugs" I didn't realize until I was over 10 | years into my professional career: | | 10 AM | | 11 AM | | 12 PM <- AM/PM and calendar cycle is here. | | 01 PM <- n%12 cycle is here, an hour later. | | 02 PM | | 03 PM | | I see large software systems for things like airlines and trains | sometimes make this mistake, for instance a 1 hour trip on a | ticket that says "11:30AM - 12:30AM" which is actually _negative_ | 11 hours. | | I have a collection of photos somewhere of every time I've caught | it. If I could change anything about time that probably nobody | would care about, it would be to align those two cycles. | | The fact that I catch it every couple months on widely deployed | systems I interpret as the signal that basically nobody | notices/cares about it as everyone knows a -11 hour train ride | isn't how time works. | ddevault wrote: | We're developing a new date/time library from scratch for Hare. | So far I think we're doing a pretty good job. The person leading | up this effort (Byron Torres) has written up a blog post about it | here: | | https://harelang.org/blog/2022-04-17-chronology-in-hare/ | | To stress test our implementation (and to flex on other | languages), we're implementing Martian time in it as well. | | https://harelang.org/blog/2022-08-01-martian-time-in-hare/ | // Hare's first commit. let hare = mbc::new(chrono::MTC, | 0, 0218,10,19, 09,20,53,344357297)!; | fmt::println(mbc::bsformat(buf, mbc::STELLAR, &hare)!)!; | // 0218 Perseus 19, Fri 09:20 MTC | | My current litmus test goal for it is to get strftime to print | out 23:23:60. | macintux wrote: | Skimming through it I didn't see my common question of such | libraries: can it handle approximate dates? | | Twice in my career I've had to implement code to handle | concepts like "August 2022", or "1pm", where it was important | to track the level of precision offered by the source material | for later comparisons. "1pm" is not the same as "1:00:00.000", | nor is "August 2022" the same as "20220801T00:00:00.000Z". | ddevault wrote: | I think that would be out of scope for the standard library. | We do have an interface which might be helpful for developing | such a tool, though: | | https://docs.harelang.org/datetime#builder | wruza wrote: | Too bad that most stdlibs outscope it to third parties. | Wildcard periods are essential for some applications (even | as simple as a periodic reminder) and also are hard to do | correctly. I'd say a period is actually more important than | a date, because we mostly work with periods, and our | "datetimes" are just integer coordinates of pixels of time, | so to say. | suzzer99 wrote: | One of the hardest programs you could ever have to write would be | historical times taking into account all the time zone and | Daylight Savings Time changes over the years. It might be | impossible. Just look at Indiana's history with time zones and | DST. | ccooffee wrote: | Many years ago, a user filed a bug report that the timezone | information we used for historical places in Indiana was | incorrect. I don't remember exactly what the user was doing, | but I think it had something to do with train schedules or | something. | | I did not fix that bug. (But I did learn that the 'TZ' database | has this information, though I think 'America/Indiana/*' had | been pruned out of the copy our JVM was using.) | leecommamichael wrote: | The proposed moral of this story, and those like it, is to avoid | re-implementing general-purpose libraries. | | Yes, good. But not all applications need a "platonic ideal" | understanding of time. Often when you type just the code you | need, the system performs excellently, and the code is minimal. | LAC-Tech wrote: | _The system clock will never be set to a time that is in the | distant past or the far future._ | | Right but if that's the case, what exactly can you do about it? | madamelic wrote: | It really depends what the 'threat model' is. | | If you are creating, for instance, an idle game where the user | can pay to skip time; that's a problem. | | If you are doing cryptographic checks dependent on time, that's | a big deal (eg: how do we handle when the client or service | goes "wtf, no. That's the wrong time") | LAC-Tech wrote: | This is my issue with a lot of technical aspects of software | engineering. | | I can read and understand about clock drift, vector clocks | etc. | | But I sometimes struggle to align that with real world design | and architecture. | | An IoT device reported an event happened at t=1, but t is not | accurate. Ok, so? What exactly can I do about that? | rcoveson wrote: | > If you are creating, for instance, an idle game where the | user can pay to skip time; that's a problem. | | This statement is also true in isolation. | bennyp101 wrote: | "Months have either 28, 29, 30, or 31 days." | | Ok, Im intrigued, are there months that don't? I assume it must | be a country specific thing? | Quekid5 wrote: | Others have already answered this one, but somewhat relevant: | https://www.timeanddate.com/date/february-30.html | pointlessone wrote: | Adoption of the Gregorian calendar [1] resulted in a number of | short months in a bunch of countries. | | Different but related, 46 BC, the year of adoption of the | Julian calendar, had 15 months [2]. | | [1]: | https://en.wikipedia.org/wiki/Adoption_of_the_Gregorian_cale... | | [2]: https://www.uh.edu/engines/epi2364.htm | jwie wrote: | I suppose it depends on if you think about a "fact month", | that is the series of days people experience, or the formal | calendar months as the things being handled by the system. | | The daylight savings time transition doesn't "shorten" or | "lengthen" the day, it merely transforms the clock. The day | isn't 25 hours or 23 hours. This is essentially the same | thing as the Julian/Gregorian swap. The day didn't really | change, just the system we use to understand what day it is. | | The span of time users experienced was weird, but this wasn't | the unit of time being shorter or longer. It's an artifact of | the transition not anything happening to the time. | | A lot of these falsehoods on the list can be side stepped by | distinguishing between the dimensions and the facts about | representing time. | astrobe_ wrote: | That's what I thought. This list mixes "falsehoods" that | nobody with a bit of common sense - even children - would | believe, and pedantry that _could_ be useful to 0.001% of | developers. For most programs, Time starts in 1970. | | IMO, this list is only good at... wasting time. Except for | the multiple statements (that could be one or two) that point | out that there's not such a thing like "identical clocks" and | "same time on two clocks". | wink wrote: | So "most" programs can ignore birth dates of people older | than 52? I don't think so. | trentgreene wrote: | Do most programs need to know the birth date of the user? | thfuran wrote: | Most of the programs I write do. Well, of people, but not | typically the user. | HiIAmIlNano wrote: | If I am not wrong this holds true for the switch from Julian | calendar to the Gregorian one. Some months were shortened to be | synchronised with the new system. And if I am not mistaken | Jewish and Arabs do not use the same systems we use for months | and years | defrost wrote: | For an added twist this changeover occurred in different | years, at different times in different countries .. and not | always with the same number of days difference. | | Good Times. | Ekaros wrote: | And even more good times. It seems sometimes some countries | went back to Julian... | n4r9 wrote: | Clicking through the links, this post appears to be the source: | https://news.ycombinator.com/item?id=4128470 | | As another commenter noted, the exception appears to be | September 1752. | | That's a fun example but whether it's worth worrying about is | another question... | teddyh wrote: | As the comments to that comment points out, 1752 is only _for | one specific country_. All countries switched at different | times (and a few even switched back and forth a few times). | Greece, in particular, seems to have switched as late as | _1923_. | TylerE wrote: | Russia is a big one too, especially for early 20th century | history nerds. | | They used the Julian calendar until after the Revolution, | so when reading accounts of, say, most of WW1, Russian | sources have dates that are 13 days off from Western | sources. This leads to much confusion when authors don't | make it clear they've converted the dates (or not). | | Amusingly, one of the first casualties of this was the | October Revolution, which in the new (Gregorian) calendar | actually occurred on November 7th | [deleted] | bennyp101 wrote: | Ah ok cool - thanks for the replies! | | So I guess its not really something that I need to worry about! | k4rli wrote: | Maybe they're developing software to be used on Mars? 687 day | years mentioned in Gist comments. | Schroedingersat wrote: | Most countries had at least one month that differed some time | from 1580ish to 1800ish when they switched calenders | | Don't know about more recent examples | Ekaros wrote: | https://en.wikipedia.org/wiki/List_of_adoption_dates_of_the_. | .. | | Actually looking at that tells me it is a mess... Like | Belarus and Lithuania changing back to Julian calendar in | 1800... And then again to Gregorian in 1918. | WhyNotHugo wrote: | September 1752 | NeoTar wrote: | Or October 1582, Or December 1582, | | Or any of a number of different dates depending on where you | were located: https://en.m.wikipedia.org/wiki/List_of_adoptio | n_dates_of_th... | detaro wrote: | I'd expect in a lunar calendar system? (where 12 lunar months | are to short to fill a year, and I think some of them fix this | by inserting an extra half-month) | | But I wish this list came with examples, and if it really means | a different calendar system it's IMHO not as interesting, | because it's IMHO fairly obvious that different calendar | systems follow different rules. Or maybe during the switch to | Gregorian calendar? That you'd at least encounter with dates | for things long ago - although that transition is very "here be | dragons" and very local. | pointlessone wrote: | Lunar month is a little over 29 days on average. And most | lunar calendars do not align with solar year but rather have | leap months added. E.g. Hebrew calendar [1]. | | [1]: https://en.wikipedia.org/wiki/Hebrew_calendar | detaro wrote: | Ok, you made me look up an example: "The Ethiopian calendar | has twelve months of thirty days plus five or six | epagomenal days, which comprise a thirteenth month." | | https://en.wikipedia.org/wiki/Intercalation_(timekeeping) | | https://en.wikipedia.org/wiki/Ethiopian_calendar | | I guess its the choice if you fix the offset every year or | wait until you accumulate a full month of offset. | thenightcrawler wrote: | I'd like to hear about how to write software orbiting a black | hole? | mhh__ wrote: | Very carefully indeed | marcosdumay wrote: | As long as you don't change orbits, you should be fine. | SilasX wrote: | "Falsehoods programmers believe about black hole orbits..." | takinola wrote: | The biggest falsehood a programmer could believe about time is | that they have the ability to roll their own time manager. Just | use a battle-hardened library and hope for the best. Dealing with | time in code is crazy-making in a way I never expected. | at-fates-hands wrote: | I personally have not had much experience with it. | | Would love to hear some horror stories you've encountered. It | might help me keep an eye out for it. | bentcorner wrote: | I agree. I'd wager most programmers don't need to actually | worry about _calendars_ , but most occasionally need to worry | about time. Just use a library and read the docs for what to | expect to happen when you do something like getCurrentTime. | What is the resolution, does it monotonically increase, etc. | | If you actually need to worry about calendars and user input, | you have my sympathy. | yreg wrote: | Unimportant sidenote: I don't like the naming of these | "falsehoods programmers believe about X" lists. Surely | programmers are more likely to be conscious of these not being | true than non-programmers. | vaylian wrote: | I still encounter forms on the web or input fields in software | that prevent me from entering truthful information or that | require me to input information that doesn't exist. There are | definitely still programmers out there that make assumptions | that don't hold in all cases. | [deleted] | edent wrote: | It isn't "falsehoods _all_ programmers believe... " it's | "falsehoods that [some|lots|many|inexperienced] programmers | believe..." | | Unless you work all day on time-related software, you'll | probably never encounter most of these quirks. | | Humans don't write in BNF. We expect, rightly or wrongly, for | other humans to use Postel's law to interpret what we mean. | jstanley wrote: | But the point is that programmers are _less_ likely to | believe these things than ordinary people are. | xboxnolifes wrote: | By putting the intended audience in the title, you grab | their attention more. | yreg wrote: | It's clickbait. | | Computerphile managed a much better title[1]: The Problem | with Time & Timezones | | A "(for programmers)" could be appended if needed. | | [1] https://www.youtube.com/watch?v=-5wpm-gesOY | xboxnolifes wrote: | Its not click bait, the contents are what the title claim | to be. | edflsafoiewq wrote: | The point is these are falsehoods whose belief can affect a | programmer's work when they get embedded into the systems | they create. The point is to correct yourself, not tu | quoque your brother. | anthony_d wrote: | But they're more likely to be impacted. | bryanrasmussen wrote: | well basically it's shorthand for "things that do not apply to | every locale for X of instance of Y, that programmers have | decided to implement as if they do apply to every locale or | instance either through not realizing they do not apply or that | the non-applicability in some situations are such bizarre | outliers in relation to the rest of the world that it has been | decided to be an acceptable bug that they will not fix" but | that's not very pithy. | | But of course what happens is the outliers have to deal with | these systems that treat them as bad data possessing impossible | properties and then the curse and say hey these stupid | programmers don't realize that the world is not just like X1 or | Y1, but that us rare instances of X2 and Y2 also exist! | | And then an expert with sufficient knowledge about all the | outliers compiles a list entitled Falsehoods Programmers | believe about {X}. | WhyNotHugo wrote: | Programmer that have worked with timekeeping: yes. | | Average programmer who hasn't done anything datetime-specific: | unlikely. | SwiftyBug wrote: | > A week (or a month) always begins and ends in the same year | | Okay, of course a week can begin in an year and end in the next, | but how exactly would a month not begin and end in the same year? | slaymaker1907 wrote: | There is a concept of "week year" in Java so a given month | could simultaneously exist in two (week) years. | grardb wrote: | Here you go: https://youtu.be/-5wpm-gesOY?t=368 | | I'd highly recommend watching the whole video, by the way. It's | really good. | idiocrat wrote: | Work in Finance. | | My year starts on April 1st. | | I do not want my year to start on January 1st, else I will | need to work through all holidays for year-end closing. | amarant wrote: | I don't think they mean what you think they mean. | | I think they mean that if someone says "remind me in a month" | On December 3rd, the reminder would be next year. | | I've never met a developer who believed that, but I've met | plenty who would forget about the edge-case and write a buggy | time-library. As is the case for most of these. | saalweachter wrote: | Depends on your calendar! | | Presidential proclamations are signed and dated in two | calendars, "the year of our Lord", and "the year of the | Independence of the United States of America": | | IN WITNESS WHEREOF, I have hereunto set my hand this twenty- | fifth day of October, in the year of our Lord two thousand | twenty-one, and of the Independence of the United States of | America the two hundred and forty-sixth. | | The former uses January 1st as the start of each new year; the | latter, July 4th. | | In England, Lady Day (March 25th) was the turnover of a new | year, for about 6 centuries. | kortex wrote: | Python specific: | | - `pytz.timezone(timezone_name)` will give you the current offset | for that timezone - well, it will at least be some consistent | offset - surely, every timezone has the same reference starting | point? | | What `pytz.timezone(name)` _actually_ does is initialize a | timezone object at the point in time of the first entry in the tz | database for that zone. For example, New York had an offset of | 4:56:02 prior to 1883 November 18, 12:03:58 [1]. That is the | "starting point" for America/New_York and US/Eastern (which I | think is an alias of New_York before a certain date). Which is | why you get >>> | pytz.timezone('America/New_York') <DstTzInfo | 'America/New_York' LMT-1 day, 19:04:00 STD> | | Ish. Not sure where those 2 seconds went. But that explains why | you see that strange 19:04 (-3:56) offset. The real way to use it | is >>> pytz.timezone('America/New_York').locali | ze(your_specific_datetime) | | Timezones without a reference time are deceptive. | | [1] | https://en.wikipedia.org/wiki/Tz_database#Example_zone_and_r... | dang wrote: | I don't know if these are all the same falsehoods, but--related: | | _Falsehoods programmers believe about time zones_ - | https://news.ycombinator.com/item?id=24870376 - Oct 2020 (16 | comments) | | _Falsehoods programmers believe about time (2017)_ - | https://news.ycombinator.com/item?id=24453712 - Sept 2020 (8 | comments) | | _Falsehoods programmers believe about Unix time_ - | https://news.ycombinator.com/item?id=19922062 - May 2019 (268 | comments) | | _Falsehoods Programmers Believe About Time (2012)_ - | https://news.ycombinator.com/item?id=12675527 - Oct 2016 (154 | comments) | | _Falsehoods programmers believe about time and time zones_ - | https://news.ycombinator.com/item?id=11515125 - April 2016 (80 | comments) | | _Falsehoods Programmers believe about Time_ - | https://news.ycombinator.com/item?id=4128208 - June 2012 (213 | comments) | pigbearpig wrote: | Should the link be updated to the actual source? This gist | appears to just be a copy of | https://infiniteundo.com/post/25326999628/falsehoods-program... | and https://infiniteundo.com/post/25509354022/more-falsehoods- | pr... | | https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b... | behnamoh wrote: | Similar thing for Names: | | Falsehoods Programmers Believe About Names | https://news.ycombinator.com/item?id=1438472 | pvg wrote: | _The Unreasonable Effectiveness of Falsehoods Programmers | Believe Considered Harmful_ | | https://news.ycombinator.com/item?id=3735928559 | zdwolfe wrote: | Is this link correct? I get a 404. | anon_123g987 wrote: | Awesome Falsehood - A curated list of falsehoods | programmers believe in | | https://github.com/kdeldycke/awesome-falsehood | taylodl wrote: | In the U.S. falling back to standard time from daylight saving | time is rough. Those days have 25 hours - and the interval from | 1:00 - 2:00 repeats (you reach 2:00 and fallback to 1:00 and | repeat the interval). Makes power scheduling difficult - _which_ | 1:00 - 2:00 interval are you talking about? | | Also, the offsets between the timezones change. Eastern Daylight | Time falls back from 2:00 to 1:00 Eastern Standard Time, which | coincides with 1:00 for Central Daylight Time. So Eastern Time | and Central Time are the same for one hour interval. Of course in | the Spring you have the opposite problem - Central Time will be 2 | hours behind Eastern Time for a one hour interval. So much for | your interval time calculations! Also, the U.S. has changed the | transition dates for the time change. | | I'm so glad to be working on a system where I no longer have to | worry about this crap! | bee_rider wrote: | We should just define a year to be 360 days long and made up of | 12 30 day months. | | Then we can elect some druids or whatever to arbitrarily, at the | start of each year, define which dates the seasonal borders will | land on. Events which are truly dependent on weather can be | defined in terms of "Days after the season starts." | | Or we could define a 5.5+-.5 day holiday between the beginning | and end of a given year. Those days will be declared to not | belong to any year. We will turn off all our computers for those | days, and pretend they didn't happen. If you are born within | them, you get a special hat or something. | Bilal_io wrote: | Should we also turn off computers in hospitals and in other | important facilities? And then how can we qualify what's | important? | | Maybe you and I have the privilege to turn off computers for | almost a week without a negative effect, but not the majority | of the world, everything uses a computer to operate and | coordinate. | | Think about food production, aviation, shipping, sailing... And | much more at both small and big scales. | uavals wrote: | vlunkr wrote: | You're going to take issue with that instead of Druid part? | teddyh wrote: | I hereby announce my campaign for the role of Time Druid. | flir wrote: | Your symbols of office shall be a blinking 12:00 and the | date 01-01-1970. | | Wait. In fact, if you weren't born on 01-01-1970, you | can't be Time Druid. Sorry. | alexfoo wrote: | Do you mean 01-01-1970 or 01-01-1970? | ravi-delia wrote: | And why do only people born within them get special hats? | Maybe you and I have the privilege of going about hatless, | but not the majority of the world. | lenova wrote: | First they came for the Special Hats, but I did not speak | out -- because I was hatless... | bee_rider wrote: | Ah details, the Time Druids will sort that out probably. | suzzer99 wrote: | The Maya did this. Those last 5 orphaned days of the year were | considered very bad luck. You did not want to be born in that | period. | LanceH wrote: | This sounds like an excellent first step into imperial units. | NegativeLatency wrote: | Something very similar already exists (in theory): | https://en.wikipedia.org/wiki/International_Fixed_Calendar | | Kodak used to run on this calendar. | account-5 wrote: | I was going to mention this. 13 months each with 28 days. | hanney wrote: | Lousy Smarch weather (doh!) | ddevault wrote: | https://qntm.org/calendar | | See also: https://qntm.org/continuous and | https://qntm.org/abolish | bee_rider wrote: | Hmm the only one which seems to apply is: | | > having one or two days per year which are part of no month | is stupid | | which I've cleverly circumvented by adding almost a while | week. I believe in this case the stupidity overflows and it | becomes a good plan again. | icedchai wrote: | When I start at a new company, it's always interesting to see how | they handle dates and times. 1) Company A stores timestamps in a | mysql database, no timezone, but implicitly on US pacific time. | The system timezones are all on pacific. Many weird bugs around | DST transitions. 2) Company B stores timestamps in a database as | Unix timestamps (ints) Tons of code converting back and forth | between ints. Code was a mess. 3) Company C stores them as | postgres timestamp with timezone, which was always UTC in | production. Code was reasonably sane. | dailykoder wrote: | >Leap years occur every 4 years. | | Isn't leap year calculation one of the very first things you do | in most programming tutorials/schools? I know that a lot of | people don't know this, but most programmers should, r-r-r-right? | atoav wrote: | If you handle dates and times yourself on that level, prepare | to be in a world of pain. | | Handling time and dates correctly has a similar difficulty to | writing your own cryptographic primitives: If you don't know | _exactly_ what you are doing you will shoot yourself (and | potentially countless others) into the foot at one in point or | another. | wruza wrote: | Tbh, half of my life I handled them on a financial platform | which couldn't care less of the subj list or standards. It | has just 'wall date' like yyyy-mm-dd and 'wall time' strictly | in 00:00:00-23:59:59 range, without a timezone. Two separate | types. Never encountered of even heard of any time-related | bug there. | | I find this simplified date/time very useful, unless you have | to manage "continuous and/or real" time somehow. 99% of | applications are okay with it, because they're facing users | with exactly the same mental model. Also, albeit not correct | scientifically, it reflects many developers' mental model as | well. This is much better than a model that just doesn't | match, which _is_ a world of pain. Someone adds 86400 but | it's the same day, good luck debugging it. | | I don't think this is a cryptographic-level issue. | rocqua wrote: | See also the problems in the Excel datetime calculations that | are now unfixable because a fix would break many existing | problems. | | e.g. https://en.wikipedia.org/wiki/Leap_year_problem | shafyy wrote: | > _There are always 24 hours in a day._ | | Is this referring to leap seconds or what do the mean? | jstanley wrote: | When the timezone changes for daylight savings time, you either | lose or gain 1 hour in that day (or whatever your local | equivalent is). | shafyy wrote: | Makes sense, thanks! | _dain_ wrote: | Daylight savings, or the device is on a plane and travels | through timezones. | defrost wrote: | Or, back when I was doing airborne geophysical surveying | across the Fijian archipelago the plane would flit from -179 | to +179 longitude a few times every hour with a potential | change of a full day if being naive about time zones. | | Data aquisition instrumentation needs to use a lapsed epoch | (to avoid UTC leap seconds) with a calibration at start and | end of projects to adjust for drift, etc. | WhyNotHugo wrote: | 23hs or 25hs during DST transitions are the most obvious | exception (twice a year in many many countries). | MerelyMortal wrote: | Sometimes 22hrs or 26hrs if traveling by ship. | ChrisMarshallNY wrote: | I've just learned to do time conversions by converting from the | target timezone to UST, then from UST, to the recipient timezone. | | Hasn't failed me yet. | | Here's why: | https://www.nist.gov/sites/default/files/images/2019/12/23/w... | | This looks useful. I haven't checked for full accuracy: | https://www.timeanddate.com/time/map/ | Ekaros wrote: | Also one thing I have noticed is that the system clocks are | actually pretty bad. Or I would expect them to be much better. | This can be easily noticed when you don't have active time sync | on machine. Drift is multiple seconds in not that many days. | WhyNotHugo wrote: | I've worked with calendar applications and todo managers, alarms, | recurring events and all that. Our timekeeping mechanics are | incredibly complex. | | 24hs before 15:00 is USUALLY 15:00. But in some timezones, it can | be (about once a year): 14:00, 16:00 or 14:59:59. | | It's currently Monday 11:02 here, but it's likely still Sunday in | some parts of the world (or is it already Tuesday somewhere? Not | sure which is right). So, right now "today" have no single | meaning; it depends on where you are. | | Oh, and does your online meeting repeat at 14hs CET every Monday? | Then for people in Argentina it will be at 9hs for six months a | year, and at 10hs for another six months (due to CET having DST, | but not Argentina). | Ekaros wrote: | 14h CET is 14h CET each and every time. It is just that we | automatically reschedule it to 14h CEST when summertime is in | use. | | Also it is in use for 7 months not 6 months... | cgrealy wrote: | Does anyone actually believe this? | | Even the most inexperienced developers I've worked with are well | aware that time, and timezones in particular, are really | difficult. | | I've yet to meet anyone that has suggested using anything other | than a battle-hardened standard library for time. | bee_rider wrote: | I bet you could get me to give the wrong answer to most of | these questions if you worded it cleverly in informal | conversation, but the answer to anything time and date related | in a technical setting is "Ugh, we'll have to look up the | stupid edge cases here," right? | BurningPenguin wrote: | I once worked for a company, where the gps platform had | multiple time related problems. This list pretty much sums it | all up. | yccs27 wrote: | Even if you use a library, it's easy to bake in an "obvious" | assumption into your program. | | Such as storing location + date + time, because that should be | unambiguous, right? Or confusing "same time tomorrow" with now | + 24h. Are you even sure which one you need? | WhyNotHugo wrote: | > Does anyone actually believe this? | | Does any programmer believe ALL these falsehoods? Not very | likely. | | Do most programmers believe AT LEAST ONE of these falsehoods? | Likely. | | > I've yet to meet anyone that has suggested using anything | other than a battle-hardened standard library for time. | | Many stdlibs still don't account for the most edge of corner | cases -- or make it very easy to screw up anyway. | wodenokoto wrote: | I think the list would be much more interesting and educational | if it provided examples. | piersj225 wrote: | Jon Skeet has put together a talk on Dates and time zones | talking about some examples | | https://www.youtube.com/watch?v=DhYUcxRWWQI | andyferris wrote: | I always enjoyed an entertaining talk by Peter Hall on this | subject: https://youtu.be/bJmx0tcVubY?t=3224 | uniqueuid wrote: | Oh I have a great one: | | > days don't overlap | | If you ever have the pleasure of working with the Jewish | religious calendar, it defines day boundaries by sundown and rise | of the first star, which are not simultaneous. This leads to a | phase during which two days co-exist. And of course it's not | continuous over the year and by location. ___________________________________________________________________ (page generated 2022-08-22 23:00 UTC)