On 13/03/17 05:17, Eric Blake wrote: > tag 26081 notabug > thanks > > On 03/13/2017 12:09 AM, Fevzi Karavelioglu wrote: >> Hello, I started getting an error with the following command: >> >> $> date --date="02:05 tomorrow" +%s >> *date: invalid date `02:05 tomorrow'* >> >> It appears any time 2 in the morning causes the error. But everything else >> appears to work fine. This appears to have started after midnight on March >> 12 2017. May be something to do with daylight saving as it starts at 2AM? > > Everything to do with daylight savings. In fact, it's a FAQ: > https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#The-date-command-is-not-working-right_002e > > You're trying to start from a time that doesn't exist in your timezone, > due to it falling within the hour that was skipped. Which is why we > recommend that date-relative commands be executed relative to noon > rather than midnight, since no (known) timezone makes their daylight > savings adjustments at noon, and even if the relative operations land at > 11 am or 1 pm after crossing the boundary, you still end up in the right > relative day. > > >> *$> date --versiondate (GNU coreutils) 8.13Copyright (C) 2011 Free Software > > Newer versions of coreutils come with a 'date --debug' option that give > you even more insight into failures, including your use case of > specifying a time that does not exist in your time zone. > > I'm closing this as not a bug, but feel free to add further comments to > the thread.
For completeness the --debug option outputs: TZ=America/Los_Angeles date --debug --date="12 Mar 2017 02:05" +%s date: parsed date part: (Y-M-D) 2017-03-12 date: parsed time part: 02:05:00 date: input timezone: -08:00 (set from TZ="America/Los_Angeles" environment value) date: using specified time as starting value: '02:05:00' date: error: invalid date/time value: date: user provided time: '(Y-M-D) 2017-03-12 02:05:00 TZ=-08:00' date: normalized time: '(Y-M-D) 2017-03-12 03:05:00 TZ=-08:00' date: -- date: possible reasons: date: non-existing due to daylight-saving time; date: numeric values overflow; date: missing timezone date: invalid date ‘12 Mar 2017 02:05’ cheers, Pádraig
