GNU bug report logs -
#63784
date --date "1 month ago" +%Y-%m does not work as expected on day 31
Previous Next
Full log
Message #8 received at 63784 <at> debbugs.gnu.org (full text, mbox):
On 29/05/2023 12:55, Jelle de Jong wrote:
> Hello everybody,
>
> I been hitting an issue for a while now that date commands return the
> wrong month on day 31 of a month and my automations stops working on
> correctly on these days.
>
> root <at> sydney:~# date
> Wed Aug 31 22:09:04 CEST 2022
> root <at> sydney:~# date --date "1 month ago" +%Y-%m
> 2022-07
> root <at> sydney:~# date --date "2 month ago" +%Y-%m
> 2022-07
> root <at> sydney:~# date --date "3 month ago" +%Y-%m
> 2022-05
> root <at> sydney:~# date --date "4 month ago" +%Y-%m
> 2022-05
>
> root <at> sydney:~# date
> Sat Dec 31 19:20:13 CET 2022
> root <at> sydney:~# date --date '1 month ago' +%Y-%m
> 2022-12
>
> $ date --version
> date (GNU coreutils) 8.30
> Copyright (C) 2018 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
>
> I would love to have this fixed if possible.
>
> If I am using the wrong command I would love to be educated as well.
> Should I use date --date "$(date +%Y-%m-01) -1 month" +%Y-%m instead...
Yes that is confusing.
The current workaround is to operate relative to the middle of the month as described at:
https://www.gnu.org/software/coreutils/faq/coreutils-faq.html#The-date-command-is-not-working-right_002e
This bug report was last modified 2 years and 107 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.