bug#80118: Don't just say "invalid date"
Pádraig Brady <[email protected]> Sat, 3 Jan 2026 23:48:35 +0000
| Newsgroups | gmane.comp.gnu.core-utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
On 03/01/2026 21:50, Collin Funk wrote: > Paul Eggert <[email protected]> writes: > >> On 2026-01-02 21:59, Dan Jacobson wrote: >>> also consider dealing with ET. >> >> Good luck with that. Is that eastern Australia time, eastern European >> time, eastern North America time, >> Ecuador/Egypt/Eritrea/Estonia/Eswatini/Ethiopia Time, East Timor, or >> something else? For what it's worth, POSIX does not allow "ET"; time >> zone abbreviations must be at least 3 characters. Also, real-world >> abbreviations are ambiguous, such as "IST" simultaneously standing for >> time in India, Ireland, and Israel. Yes location based zones are better than these abbreviations as I noted at: https://www.pixelbeat.org/docs/linux_timezones/ > +1. The use of "IST" especially annoys me every once in a while since I > work with people in both India and Israel. and Ireland :) >>> $ date -d '01/30/2026 02:00 PM ET' >>> date: invalid date ‘01/30/2026 02:00 PM ET’ >>> Don't just say "invalid date". Say "invalid date: weird time zone". >> >> Yes, it'd be nice if the date parser pointed out exactly what it >> didn't like. > > We could probably have parse_datetime return an enum error code, which > would allow existing programs expecting a bool to work without changes. > It would take some work to implement, though. Note we have the --debug option which is a catchall for a lot of these issues, and I think suffices for this: $ date --debug -d '01/30/2026 02:00 PM ET' date: warning: value 1 has less than 4 digits. Assuming MM/DD/YY[YY] date: parsed date part: (Y-M-D) 2026-01-30 date: parsed time part: 02:00:00pm date: error: unknown word 'ET' date: error: parsing failed date: invalid date ‘01/30/2026 02:00 PM ET’ cheers, Padraig