frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

You're Wrong About Dates – and Your Code Is Lying to You

https://metaduck.com/youre-wrong-about-dates/
14•pgte•3d ago

Comments

pgte•3d ago
Why your mental model of dates is broken, how programming languages gaslight us about time, and how Decipad’s interval-based approach fixes it.
re•50m ago
> Every date library you’ve ever used is lying to you.

I feel like you haven't used most date libraries.

https://docs.oracle.com/javase/8/docs/api/java/time/YearMont... / https://docs.python.org/3/library/datetime.html#date-objects / https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

croisillon•1h ago
it's an interesting feature, shame there is no immediate link to the product (and shame the article has been produced by AI) ; i've recently managed the relaunch of one product at work and some of the best user-friendly advances come from proper time understanding
chao-•1h ago
I forget where I first heard it, but "Dates are not real. Only times with zones are real."

When you need to be precise, you specify a time and a zone.

When your application has users in different geographies, you need to be precise.

Displaying the date attached to a time is a presentational convenience. Only the time is real.

bryanrasmussen•1h ago
>When your application has users in different geographies, you need to be precise.

depends how important it is. app for tracking celebrity hairstyles forego precision for easy understanding, stock markets precision needed.

01HNNWZ0MV43FF•1h ago
> midnight to 23:59:59 that day.

What day is it at 23:59:59.500 then?

You're wrong about intervals! </jk only serious>

JimDabell•1h ago
> This isn’t just “nicer syntax” — it’s a fundamental shift in how your software thinks.

I’m sorry, I just can’t get past this awful hyperbolic AI drivel.

ksenzee•1h ago
I don’t think this is related to AI at all. (Unless you’re suggesting it’s AI-generated?) It’s “thinking” as a metaphor for the abstraction being used.
kranner•1h ago
> And it’s not harmless — it leads to broken logic, messy hacks, and subtle bugs that only show up in production.

The AI-specific use of em dash with the list of three near-synonyms following, the "it's not just this", the "it's a fundamental shift". This article seems AI-generated or at the very least AI-massaged.

Once you suspect AI has been used to write something, you're not sure if the 'author' has bothered to double-check the article for veracity, or if you're going to be doing this work for them.

quesera•1h ago
Humans taught LLMs how to write, and now LLMs are teaching humans how to write.

It's terrible.

> The truth: your current date system isn’t just awkward — it’s wrong. We fixed it. And if that feels unsettling… maybe it’s time your code grew up.

Whoever wrote this (whether carbon or silicon; I lean toward the latter) ... should find another line of work.

JimDabell•24m ago
> Unless you’re suggesting it’s AI-generated?

It’s this. The current crop of LLMs have latched onto a small number of mannerisms that they constantly overuse, along with a weird TEDx voice and belief that everything is game-changing. It wasn’t so bad until recently, but it’s gotten so much worse lately – the overuse of these things would practically be a verbal tic if a human used them so often.

It’s incredibly tiring to read, especially as it uses so many words to say so little. Take this for instance:

> it’s a fundamental shift in how your software thinks.

This is pure, unmitigated horseshit. We’re talking about date representation not a major paradigm shift. But LLMs spit out this crap all the time. It’s not saying anything, it’s just putting one word in front of another.

The human who publishes this should be reviewing it to catch it when it goes off the rails like this, but it seems like it was published with no human oversight at all, or at least none that is able to catch it talking nonsense.

jillesvangurp•1h ago
Where this stuff gets hard is time zones and localization. Add some daylight savings to the mix and you are going to get lots of subtle issues. These range checks only make sense in the context of localized dates. For example 2025 started almost a day earlier in Sydney then it did in LA.

And then there are cultural differences. Do weeks start on a Sunday or a Monday? People wielding different calendars (Chinese new year is not on the 1st of January). So what is the beginning of the year is dependent on where you are as well.

If you are not localizing your dates before doing the checks that the author is proposing, it's probably wrong. This stuff is complicated for good reasons.

Anyway, store UTC times. Deal with making it look pretty and culturally & geographically appropriate in your UI. You shouldn't have to update your database just because the user took a plane to the other side of the planet.

Anyway, intervals and range checks are pretty easy to do with decent libraries. I like Kotlin and Java's way of using Durations for arbitrary time intervals. Kotlin's version of that supports operators. And has useful extension functions. And a thing called LocalDate which is a date without the time part, exactly like the author proposes. There's also LocalDateRange, which you can use to represent intervals. There's no LocalDateTimeRange equivalent for that. But that's where you'd switch to instants and durations probably.

Relative date and time expressions are surprisingly hard. A little known feature in Elasticsearch is that somebody at some point hacked in a date math thing that allows you to specify "now-2d" and "now+7d" as a valid input for range queries on dates. Surprisingly hard to do more complicated expressions and parse them correctly. I had a go at that problem at some point. Cron parsers are tricky for the same reason. And there are a few dialects of that to add some features that people needed.

There's a rich history of people having tried a whole bunch of things with times and dates.

torium•1h ago
Meh. People know dates are intervals. You just have to use it properly. All libs make assumptions.

For example, this lib makes the assumption that years and months have a fixed length, e.g. date(2024Q2) - date(2024Q1) = 3 months

Humphrey•1h ago
I've been working as a software dev for over 20 yrs and not really ever got caught in the precise moment issue that the author is talking about. You just need to pick the correct datatype for the kind of thing that you want. Eg

Eg, in Python

year = int

month = str (yyyy-mm)

day = naive date

exact moment = timezone aware datetime

flufluflufluffy•56m ago
My mental model includes both precise moments and intervals. As does PHP’s native date/time functionality, which can do all the same things exemplified in the article. Stop telling me I’m wrong and that you’ve thought of something paradigm-shifting.
alextingle•52m ago
This is dangerous nonsense.

Even the example used on the blog post is wrong (in my timezone)...

Start = date(2020-02-23) End = date(2020-04-05)

Duration = End - Start // 42 days Duration as hours // 1008 hours

2020-03-29 was the start of Summer Time, so only 23 hours long. So the duration in question should be 1007 hours.

Having a span of time using days as the only unit is fine. But there no way to convert that into a different time unit without knowing which specific days we mean.

What happens if the duration concerns something that physically moves? Was the software running on a ship that travelled from Europe to Australia between February and April?

Honestly, gushing about how dumb everyone else is, without mentioning even basic wrinkles like this just screams Dunning Kruger.

rich_sasha•22m ago
The article clearly aims to be inflammatory, but I'd restate: dates and times are not the same. Ditto for time intervals etc. But lots of libraries skim over this, leading to terrible bugs.

Python date time library, for example, essentially has dates as low precision timestamps. If you subtract a second from a time at midnight, you get what you expect. But subtract it from a date and you are where you started.

You can't add 24hrs to a midnight timestamp to increment date by 1 because DST.

Etc etc.

StarDict sends X11 clipboard to remote servers

https://lwn.net/SubscriberLink/1032732/3334850da49689e1/
148•pabs3•4h ago•74 comments

GLM-4.5: Agentic, Reasoning, and Coding (ARC) Foundation Models [pdf]

https://www.arxiv.org/pdf/2508.06471
228•SerCe•7h ago•24 comments

Wikipedia loses challenge against Online Safety Act

https://www.bbc.com/news/articles/cjr11qqvvwlo
789•phlummox•15h ago•596 comments

I tried every todo app and ended up with a .txt file

https://www.al3rez.com/todo-txt-journey
1013•al3rez•18h ago•603 comments

All known 49-year-old Apple-1 computer

https://www.apple1registry.com/en/list.html
79•elvis70•3d ago•14 comments

The Article in the Most Languages

https://en.wikipedia.org/wiki/Wikipedia:Wikipedia_Signpost/2025-08-09/Disinformation_report
71•vhcr•3d ago•14 comments

Weathering Software Winter

https://100r.co/site/weathering_software_winter.html
67•todsacerdoti•5h ago•27 comments

Undefined Behavior in C and C++

https://russellw.github.io/undefined-behavior
16•imadr•3d ago•20 comments

CoLoop (YC S21) Is Hiring AI Engineers in London

1•mrlowlevel•1h ago

Claude Code is all you need

https://dwyer.co.za/static/claude-code-is-all-you-need.html
619•sixhobbits•18h ago•333 comments

GitHub is no longer independent at Microsoft after CEO resignation

https://www.theverge.com/news/757461/microsoft-github-thomas-dohmke-resignation-coreai-team-transition
1159•Handy-Man•16h ago•851 comments

A fast, low-latency, open-hardware e-paper monitor and dev kit

https://www.crowdsupply.com/modos-tech/modos-paper-monitor
8•RossBencina•3d ago•0 comments

Show HN: I built an offline, open‑source desktop Pixel Art Editor in Python

https://github.com/danterolle/tilf
124•danterolle•10h ago•26 comments

FreeBSD Scheduling on Hybrid CPUs

https://wiki.freebsd.org/Scheduler/Hybrid
59•fntlnz•4d ago•18 comments

LLMs' "simulated reasoning" abilities are a brittle mirage

https://arstechnica.com/ai/2025/08/researchers-find-llms-are-bad-at-logical-inference-good-at-fluent-nonsense/
53•blueridge•2h ago•31 comments

OpenSSH Post-Quantum Cryptography

https://www.openssh.com/pq.html
399•throw0101d•20h ago•105 comments

Neki – sharded Postgres by the team behind Vitess

https://planetscale.com/blog/announcing-neki
195•thdxr•14h ago•27 comments

The History of Windows XP

https://www.abortretry.fail/p/the-history-of-windows-xp
70•achairapart•1d ago•35 comments

Show HN: Play Pokémon to unlock your Wayland session

https://github.com/AdoPi/wlgblock
93•anajimi•1d ago•38 comments

How to teach your kids to play poker: Start with one card

https://www.bloomberg.com/news/articles/2025-08-08/how-to-teach-your-kids-poker-with-one-card-at-age-four
78•ioblomov•3d ago•117 comments

Ollama and gguf

https://github.com/ollama/ollama/issues/11714
138•indigodaddy•14h ago•59 comments

Launch HN: Halluminate (YC S25) – Simulating the internet to train computer use

56•wujerry2000•17h ago•39 comments

The value of institutional memory

https://timharford.com/2025/05/the-value-of-institutional-memory/
146•leoc•15h ago•80 comments

Why tail-recursive functions are loops

https://kmicinski.com/functional-programming/2025/08/01/loops/
105•speckx•3d ago•108 comments

Japan's largest paper, Yomiuri Shimbun, sues Perplexity for copyright violations

https://www.niemanlab.org/2025/08/japans-largest-newspaper-yomiuri-shimbun-sues-perplexity-for-copyright-violations/
130•aspenmayer•8h ago•53 comments

Chris Simpkins, creator of Hack font, has died

https://typo.social/@Hilary/114845913381245488
84•laqq3•5h ago•9 comments

AOL to discontinue dial-up internet

https://www.nytimes.com/2025/08/11/business/aol-dial-up-internet.html
190•situationista•1d ago•198 comments

36B solar mass black hole at centre of the Cosmic Horseshoe gravitational lens

https://academic.oup.com/mnras/article/541/4/2853/8213862?login=false
137•bookofjoe•17h ago•97 comments

Starbucks in Korea asks customers to stop bringing in printers/desktop computers

https://fortune.com/2025/08/11/starbucks-south-korea-policy-desktop-computer-printer-ban-cagongjok/
57•zdw•9h ago•44 comments

How Boom uses software to accelerate hardware development

https://bscholl.substack.com/p/move-fast-and-dont-break-safety-critical
90•flabber•1d ago•69 comments