[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#17161: closed (Re: bug#17161: Bug in date arithmetic of date)
From: |
Eric Blake |
Subject: |
bug#17161: closed (Re: bug#17161: Bug in date arithmetic of date) |
Date: |
Wed, 02 Apr 2014 05:27:43 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 |
reopen 17161
thanks
On 04/02/2014 02:17 AM, Marc R.J. Brevoort wrote:
> Hello,
>
> As a heads-up, the explanation that this is due to time zone+locale
> doesn't make sense:
>
> address@hidden:~$ date --utc -d "2014-03-11 12:34:56 -1 day" +"%Y-%m-%d
> %H:%M:%S"
> 2014-03-12 13:34:56
> address@hidden:~$ date --utc -d "2014-03-11 12:34:56 -2 days"
> +"%Y-%m-%d %H:%M:%S"
> 2014-03-12 14:34:56
> address@hidden:~$ date --utc -d "2014-03-11 12:34:56 -3 days"
> +"%Y-%m-%d %H:%M:%S"
> 2014-03-12 15:34:56
>
> The more days I subtract, the more hours are added. If this were a time
> zone issue, the amount of hours added would be constant but the
> resulting date would not.
Thanks for persisting. I was able to reproduce using coreutils.git, and
I can explain what's happening. Date is parsing this as:
"(2014-03-11 12:34:56 -3) (days)"
that is, -3 is being treated as the timezone, since it occurs next to
the hour specification; then treating "days" as "+1 day" or "+24 hours".
Watch what happens when you reorder the line to force a different parse:
$ src/date --utc -d "-3 days 2014-03-11 12:34:56" +"%Y-%m-%d %H:%M:%S"
2014-03-08 12:34:56
It does indeed seem awkward that date is not parsing this as:
"(2014-03-11 12:34:56) (-3 days)"
but fixing that will require tweaks to the getdate.y parser in gnulib.
I've reopened the bug to track the issue with awkward precedence in the
parser.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature