GNU bug report logs - #63784
date --date "1 month ago" +%Y-%m does not work as expected on day 31

Previous Next

Package: coreutils;

Reported by: Jelle de Jong <jelledejong <at> powercraft.nl>

Date: Mon, 29 May 2023 13:41:01 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Jelle de Jong <jelledejong <at> powercraft.nl>
To: 63784 <at> debbugs.gnu.org
Subject: bug#63784: date --date "1 month ago" +%Y-%m does not work as expected on day 31
Date: Mon, 29 May 2023 13:55:04 +0200
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...

Kind regards,

Jelle de Jong




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.