From unknown Mon Aug 18 02:36:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50115: date command arithmetic involving the epoch produces "invalid date" Resent-From: Jeremy Cantrell Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 19 Aug 2021 01:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50115 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: 50115@debbugs.gnu.org X-Debbugs-Original-To: bug-coreutils@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.162933765728419 (code B ref -1); Thu, 19 Aug 2021 01:48:02 +0000 Received: (at submit) by debbugs.gnu.org; 19 Aug 2021 01:47:37 +0000 Received: from localhost ([127.0.0.1]:57823 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGX9d-0007OJ-B6 for submit@debbugs.gnu.org; Wed, 18 Aug 2021 21:47:37 -0400 Received: from lists.gnu.org ([209.51.188.17]:48368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGX5R-0007HV-Dq for submit@debbugs.gnu.org; Wed, 18 Aug 2021 21:43:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44224) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGX5Q-0007Ct-Ux for bug-coreutils@gnu.org; Wed, 18 Aug 2021 21:43:17 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]:33467) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mGX5P-000509-A7 for bug-coreutils@gnu.org; Wed, 18 Aug 2021 21:43:16 -0400 Received: by mail-pl1-x62f.google.com with SMTP id o10so3055778plg.0 for ; Wed, 18 Aug 2021 18:43:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=zfYp30stFkAxx9MLrUDqgeBEjrTxDwFK6f5TdoFNZTM=; b=sDkDF9rGM/4K9DLI5E8V8d+Q+BBhM3bED1MWJYK9hOxjLAsurb0Jpl1vwvfluKPljX CKvDsdtGqK7CZErtqMkQh05NMmIsXMMxX70wbxTSrnwNEaP/UzpbrGwcUNq+ddH3WlVO qnYG55V9oGhn+xPsO6+LQ08VD1yYOY/IMkS0lCA1vhx/DTNLVfaxjZhhtGR03LFrwwK/ mMV/wbQg40QKqQ8nwhFwuavlKixlH1VImqITAld/vOHmmHWBq5OJ2E++DhgHegNdSE5w kF2Gc3JfNRKC2Cy1RRZccbHWchaNcJHmxEq9bvIxnaUVlU8wwnO7jZKapkF3zru6pegl x0NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=zfYp30stFkAxx9MLrUDqgeBEjrTxDwFK6f5TdoFNZTM=; b=Mo1sXAtc8gcPoZAIX83NiKu0wWx3WOVJdgSfNq3QM2t+YNUB07IgWeGRClBaDg1BaP GVzCJvp8+qsw5j0ml1jglqncFoB39KiXeFC/bNf8eYWpKdd7aOUc6hEJsq/yo6L2sbNL 4rZLoZhmTDZbSSXuG6/MPtEz6IH+ZPa/OospLse65Shm1iGZ94sYXJIEfsKnl99zI4HO szD5fbGPrGTXxMlsPwtIikoytoDbRXAK/ga/0twZEUUWjLCxN5r+MbdDyddvt3dV9uS9 0d3p8TSYL8kzuNfd8Vyj5L7kn2akkXg9zTHTWg5r8u+9Gth7h8zx4c8eoiwzazIYc6PE Jh/w== X-Gm-Message-State: AOAM530VZk8n9ydT/YlaPxRN7WGKHycFacWwljPkPA996ZiqrEcVEglm d2cHyJecY075IQLK/s/8cG8r/VGlzxMds7jDcf3uwbbKyAE= X-Google-Smtp-Source: ABdhPJzaXCz/KbXq/P5g1HiHeKFRRQg7OVvJHNEhX5ugbP4M6ZftE30sRkBtndNqNTtmHOFITu/g9XgZu0ne1Klj8pA= X-Received: by 2002:a17:90b:93:: with SMTP id bb19mr12246431pjb.224.1629337392784; Wed, 18 Aug 2021 18:43:12 -0700 (PDT) MIME-Version: 1.0 From: Jeremy Cantrell Date: Wed, 18 Aug 2021 20:43:01 -0500 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=jmcantrell@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Mailman-Approved-At: Wed, 18 Aug 2021 21:47:35 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Using `date --utc --date=3D"..."` with a date specification that decrements by years that should result in epoch=3D0 (1969-12-31T23:59:59+00:00) produces an "invalid date" error message. The following commands should illustrate the problem: Notice that the only difference between the starting dates is 1 second. ```sh $ date -u -d "1970-12-31T23:59:59+00:00 - 1 year" date: invalid date =E2=80=981970-12-31T23:59:59+00:00 - 1 year=E2=80=99 $ date -u -d "1970-12-31T23:59:58+00:00 - 1 year" Wed Dec 31 11:59:58 PM UTC 1969 ``` The dates are only considered invalid if they fall on epoch=3D0: ```sh $ date -u -d "1971-12-31T23:59:59+00:00 - 2 year" date: invalid date =E2=80=981971-12-31T23:59:59+00:00 - 2 year=E2=80=99 $ date -u -d "1972-12-31T23:59:59+00:00 - 3 year" date: invalid date =E2=80=981972-12-31T23:59:59+00:00 - 3 year=E2=80=99 ``` Going the other direction seems to work: ```sh $ date -u -d "1969-01-01T00:00:00+00:00 + 1 year" Thu Jan 1 12:00:00 AM UTC 1970 ``` It only seems to error when decrementing by years: ```sh date -u -d "1970-01-01T00:00:01+00:00 - 1 second" Thu Jan 1 12:00:00 AM UTC 1970 ``` It only seems to error when using --utc, because the following works (my time zone is America/Chicago): ```sh $ date -d "Wed Dec 31 06:00:00 PM CST 1970 - 1 year" +%s 0 ``` From unknown Mon Aug 18 02:36:12 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50115: Found the line where it is failing References: In-Reply-To: Resent-From: Jeremy Cantrell Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 19 Aug 2021 03:10:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50115 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: 50115@debbugs.gnu.org Received: via spool by 50115-submit@debbugs.gnu.org id=B50115.162934257011721 (code B ref 50115); Thu, 19 Aug 2021 03:10:02 +0000 Received: (at 50115) by debbugs.gnu.org; 19 Aug 2021 03:09:30 +0000 Received: from localhost ([127.0.0.1]:57880 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGYQs-00032y-6U for submit@debbugs.gnu.org; Wed, 18 Aug 2021 23:09:30 -0400 Received: from mail-pj1-f43.google.com ([209.85.216.43]:51755) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGYEQ-0000aS-OD for 50115@debbugs.gnu.org; Wed, 18 Aug 2021 22:56:39 -0400 Received: by mail-pj1-f43.google.com with SMTP id oa17so4008709pjb.1 for <50115@debbugs.gnu.org>; Wed, 18 Aug 2021 19:56:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=wiGSdrRZjTFQO3PScVRWNwc0zlasggew17UPubGHne0=; b=DZawGhERD5l+4fMY5s9+zER90mIP7V8jqcqqRu2aljf2nIrwf0hphwGt23iF4fe8Sk Hw5AMa2JFmkxh2Z/YOSz9NvgQWm9JQCVjcate6sWJ1eA/utQz4mgFTOvqs9Xj7xp3XTk PH+UwZqeK+DcvbeSoVQ6KOstbfrrTIOlcBbIpf4IeVjFLWT2Jfu2ltfT1eoDl1A1mK+6 nt+8WybUYR+3sI5qQKXJow9Bnm75wgchSgxTfqmej01BFhuJ+h08+DoR7RQ9NmwrptlG wBff2qCAj9vY+Lt2oinLxFsTtEF3Pj7QHLV1riGcSH7JHTXYdhMNL3lRw5mMpMWhiFSv jQ0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=wiGSdrRZjTFQO3PScVRWNwc0zlasggew17UPubGHne0=; b=ZEbRjsHqL7VFVNowcMjNKqbTF7zUF3NJ+QKDSAnAwyZtvu/SiedTfI4jnbOxaKanRq U5+ukKVXx2EsAiwUt8qGpqTP4wVJZdqn4MdYrFI10zYRtn/fTCh36vCCEOJqGC2mVdjV SpySQDpgktVyNn3grSTwKkQSDauH1Nao2pAw+U1eBG96PRDVPVoz8IkUlsXWzwIEGtd+ qPeC5Lncn8A5iD50NrNN4rREFt7UvDAXRFzC/rfh5f+YeWlq6QrivMRFOOtMh/jrTCvZ ASLt2//xEIvc4CEDRdi28O9HIpUd2bLhuGJQHINs6Vk8wj02ttVXD2SvSgAk32gm2GlG Xfew== X-Gm-Message-State: AOAM533z8JVihW17BR/P084i6iYmGmDj2mqnK89aRNi6j1Jm6lt9wXd5 KdoO2uHQatz259gIrUfQgvzjr6lwgVAZWGz/N0RPhkeKsvg= X-Google-Smtp-Source: ABdhPJwDa8zI4/WGp8lGJgr8McVD3xa125Jm4HuO5+D+XMKLOREWJffbjW85j3YxJvK2b3NEGZm0pj/tQkbViyU90Js= X-Received: by 2002:a17:90a:7781:: with SMTP id v1mr12372519pjk.161.1629341792366; Wed, 18 Aug 2021 19:56:32 -0700 (PDT) MIME-Version: 1.0 From: Jeremy Cantrell Date: Wed, 18 Aug 2021 21:56:21 -0500 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Mailman-Approved-At: Wed, 18 Aug 2021 23:09:28 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On line 2160 in `./gnulib/lib/parse-datetime.y`, there's this: ```c if (Start =3D=3D (time_t) -1) { if (debugging (&pc)) dbg_printf (_("error: adding relative date resulted " "in an invalid date: '%s'\n"), debug_strfdatetime (&tm, &pc, dbg_tm, sizeof dbg_tm)); goto fail; } ``` This seems to indicate that, if the parsed value is -1, it's considered an invalid date, but isn't -1 a valid date in epoch seconds? Passing --debug to the date shows the correct result, but claims it's inval= id: ```sh $ ./src/date --debug -u -d "1970-12-31T23:59:59+00:00 - 1 year" date: parsed datetime part: (Y-M-D) 1970-12-31 23:59:59 UTC+00 date: parsed relative part: -1 year(s) date: input timezone: parsed date/time string (+00) date: using specified time as starting value: '23:59:59' date: starting date/time: '(Y-M-D) 1970-12-31 23:59:59 TZ=3D+00' date: warning: when adding relative months/years, it is recommended to specify the 15th of the months date: error: adding relative date resulted in an invalid date: '(Y-M-D) 1969-12-31 23:59:59 TZ=3D+00' ./src/date: invalid date =E2=80=981970-12-31T23:59:59+00:00 - 1 year=E2=80= =99 ``` From unknown Mon Aug 18 02:36:12 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jeremy Cantrell Subject: bug#50115: closed (Re: bug#50115: date command arithmetic involving the epoch produces "invalid date") Message-ID: References: X-Gnu-PR-Message: they-closed 50115 X-Gnu-PR-Package: coreutils Reply-To: 50115@debbugs.gnu.org Date: Sat, 05 Feb 2022 21:56:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1644098161-1920-1" This is a multi-part message in MIME format... ------------=_1644098161-1920-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #50115: date command arithmetic involving the epoch produces "invalid date" which was filed against the coreutils package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 50115@debbugs.gnu.org. --=20 50115: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D50115 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1644098161-1920-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 50115-done) by debbugs.gnu.org; 5 Feb 2022 21:55:38 +0000 Received: from localhost ([127.0.0.1]:35750 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGT1t-0000UK-Oj for submit@debbugs.gnu.org; Sat, 05 Feb 2022 16:55:38 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:56104) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nGT1r-0000U5-MU for 50115-done@debbugs.gnu.org; Sat, 05 Feb 2022 16:55:36 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id CD2311600B0; Sat, 5 Feb 2022 13:55:29 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 9sDCvp1mkS6t; Sat, 5 Feb 2022 13:55:28 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 072961600B2; Sat, 5 Feb 2022 13:55:28 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id SZXL156jKZe5; Sat, 5 Feb 2022 13:55:27 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A930C1600B0; Sat, 5 Feb 2022 13:55:27 -0800 (PST) Content-Type: multipart/mixed; boundary="------------W46frGS1OlzRd10qPXDtGMXb" Message-ID: Date: Sat, 5 Feb 2022 13:55:26 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: bug#50115: date command arithmetic involving the epoch produces "invalid date" Content-Language: en-US To: Jeremy Cantrell References: From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50115-done Cc: Gnulib bugs , 50115-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) This is a multi-part message in MIME format. --------------W46frGS1OlzRd10qPXDtGMXb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for the bug report. I installed the attached patches to Gnulib and to Coreutils, and the fix should be in the next Coreutils release. --------------W46frGS1OlzRd10qPXDtGMXb Content-Type: text/x-patch; charset=UTF-8; name="0001-parse-datetime-allow-calculations-to-yield-1.patch" Content-Disposition: attachment; filename="0001-parse-datetime-allow-calculations-to-yield-1.patch" Content-Transfer-Encoding: base64 RnJvbSBhYTBkMWU3ODAwOTAzZjJkNzU0MzJkNzhhYTY0YTBlOTc3MGU4M2YyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDUgRmViIDIwMjIgMTE6MDU6NDQgLTA4MDAKU3ViamVjdDogW1BBVENI XSBwYXJzZS1kYXRldGltZTogYWxsb3cgY2FsY3VsYXRpb25zIHRvIHlpZWxkIC0xCgpQcm9i bGVtIHJlcG9ydGVkIGJ5IEplcmVteSBDYW50cmVsbCA8aHR0cHM6Ly9idWdzLmdudS5vcmcv NTAxMTU+LgoqIGxpYi9wYXJzZS1kYXRldGltZS55IChwYXJzZV9kYXRldGltZV9ib2R5KTog V2hlbiBjYWxsaW5nIG1rdGltZSwKdXNlIGFuIHVubW9kaWZlZCBhbmQgbmVnYXRpdmUgdG1f d2RheSBvciB0bV95ZGF5IHRvIGRldGVjdCBhbiBlcnJvciwKYXMgYSAodGltZV90KSAtMSBy ZXR1cm4gdmFsdWUgaXMgdmFsaWQgb24gbW9zdCBob3N0cy4KKiB0ZXN0cy90ZXN0LXBhcnNl LWRhdGV0aW1lLmMgKG1haW4pOiBBZGQgYSB0ZXN0IGZvciB0aGUgYnVnLgotLS0KIENoYW5n ZUxvZyAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKysrKwogbGliL3BhcnNlLWRhdGV0 aW1lLnkgICAgICAgIHwgMjIgKysrKysrKysrKystLS0tLS0tLS0tLQogdGVzdHMvdGVzdC1w YXJzZS1kYXRldGltZS5jIHwgIDggKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjggaW5z ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIv Q2hhbmdlTG9nCmluZGV4IDU0NDU4MDJlYTIuLjE4ZGNiM2ZlM2YgMTAwNjQ0Ci0tLSBhL0No YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMi0wNSAg UGF1bCBFZ2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+CisKKwlwYXJzZS1kYXRldGltZTog YWxsb3cgY2FsY3VsYXRpb25zIHRvIHlpZWxkIC0xCisJUHJvYmxlbSByZXBvcnRlZCBieSBK ZXJlbXkgQ2FudHJlbGwgPGh0dHBzOi8vYnVncy5nbnUub3JnLzUwMTE1Pi4KKwkqIGxpYi9w YXJzZS1kYXRldGltZS55IChwYXJzZV9kYXRldGltZV9ib2R5KTogV2hlbiBjYWxsaW5nIG1r dGltZSwKKwl1c2UgYW4gdW5tb2RpZmVkIGFuZCBuZWdhdGl2ZSB0bV93ZGF5IG9yIHRtX3lk YXkgdG8gZGV0ZWN0IGFuIGVycm9yLAorCWFzIGEgKHRpbWVfdCkgLTEgcmV0dXJuIHZhbHVl IGlzIHZhbGlkIG9uIG1vc3QgaG9zdHMuCisJKiB0ZXN0cy90ZXN0LXBhcnNlLWRhdGV0aW1l LmMgKG1haW4pOiBBZGQgYSB0ZXN0IGZvciB0aGUgYnVnLgorCiAyMDIyLTAyLTA0ICBQYXVs IEVnZ2VydCAgPGVnZ2VydEBjcy51Y2xhLmVkdT4KIAogCXVzZXJzcGVjOiBoZWxwIGZpeCBH TlUg4oCYaWTigJkgaW5jb21wYXRpYmlsaXR5CmRpZmYgLS1naXQgYS9saWIvcGFyc2UtZGF0 ZXRpbWUueSBiL2xpYi9wYXJzZS1kYXRldGltZS55CmluZGV4IGM0MGZkY2VmN2YuLjlmYzE0 YzlkNDYgMTAwNjQ0Ci0tLSBhL2xpYi9wYXJzZS1kYXRldGltZS55CisrKyBiL2xpYi9wYXJz ZS1kYXRldGltZS55CkBAIC0yMDc2LDIxICsyMDc2LDIwIEBAIHBhcnNlX2RhdGV0aW1lX2Jv ZHkgKHN0cnVjdCB0aW1lc3BlYyAqcmVzdWx0LCBjaGFyIGNvbnN0ICpwLAogICAgICAgaWYg KHBjLmRheXNfc2VlbiAmJiAhIHBjLmRhdGVzX3NlZW4pCiAgICAgICAgIHsKICAgICAgICAg ICBpbnRtYXhfdCBkYXlpbmNyOwotICAgICAgICAgIGlmIChJTlRfTVVMVElQTFlfV1JBUFYg KChwYy5kYXlfb3JkaW5hbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt ICgwIDwgcGMuZGF5X29yZGluYWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJiYgdG0udG1fd2RheSAhPSBwYy5kYXlfbnVtYmVyKSksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgNywgJmRheWluY3IpCi0gICAgICAgICAgICAgIHx8IElO VF9BRERfV1JBUFYgKChwYy5kYXlfbnVtYmVyIC0gdG0udG1fd2RheSArIDcpICUgNywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5aW5jciwgJmRheWluY3IpCi0gICAg ICAgICAgICAgIHx8IElOVF9BRERfV1JBUFYgKGRheWluY3IsIHRtLnRtX21kYXksICZ0bS50 bV9tZGF5KSkKLSAgICAgICAgICAgIFN0YXJ0ID0gLTE7Ci0gICAgICAgICAgZWxzZQorICAg ICAgICAgIHRtLnRtX3lkYXkgPSAtMTsKKyAgICAgICAgICBpZiAoISAoSU5UX01VTFRJUExZ X1dSQVBWICgocGMuZGF5X29yZGluYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLSAoMCA8IHBjLmRheV9vcmRpbmFsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICYmIHRtLnRtX3dkYXkgIT0gcGMuZGF5X251bWJlcikpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICZkYXlpbmNyKQorICAg ICAgICAgICAgICAgICB8fCBJTlRfQUREX1dSQVBWICgocGMuZGF5X251bWJlciAtIHRtLnRt X3dkYXkgKyA3KSAlIDcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh eWluY3IsICZkYXlpbmNyKQorICAgICAgICAgICAgICAgICB8fCBJTlRfQUREX1dSQVBWIChk YXlpbmNyLCB0bS50bV9tZGF5LCAmdG0udG1fbWRheSkpKQogICAgICAgICAgICAgewogICAg ICAgICAgICAgICB0bS50bV9pc2RzdCA9IC0xOwogICAgICAgICAgICAgICBTdGFydCA9IG1r dGltZV96ICh0eiwgJnRtKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgIGlmIChTdGFy dCA9PSAodGltZV90KSAtMSkKKyAgICAgICAgICBpZiAodG0udG1feWRheSA8IDApCiAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgIGlmIChkZWJ1Z2dpbmcgKCZwYykpCiAgICAgICAg ICAgICAgICAgZGJnX3ByaW50ZiAoXygiZXJyb3I6IGRheSAnJXMnICIKQEAgLTIxNTYsOCAr MjE1NSw5IEBAIHBhcnNlX2RhdGV0aW1lX2JvZHkgKHN0cnVjdCB0aW1lc3BlYyAqcmVzdWx0 LCBjaGFyIGNvbnN0ICpwLAogICAgICAgICAgIHRtLnRtX21pbiA9IHRtMC50bV9taW47CiAg ICAgICAgICAgdG0udG1fc2VjID0gdG0wLnRtX3NlYzsKICAgICAgICAgICB0bS50bV9pc2Rz dCA9IHRtMC50bV9pc2RzdDsKKyAgICAgICAgICB0bS50bV93ZGF5ID0gLTE7CiAgICAgICAg ICAgU3RhcnQgPSBta3RpbWVfeiAodHosICZ0bSk7Ci0gICAgICAgICAgaWYgKFN0YXJ0ID09 ICh0aW1lX3QpIC0xKQorICAgICAgICAgIGlmICh0bS50bV93ZGF5IDwgMCkKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgaWYgKGRlYnVnZ2luZyAoJnBjKSkKICAgICAgICAgICAg ICAgICBkYmdfcHJpbnRmIChfKCJlcnJvcjogYWRkaW5nIHJlbGF0aXZlIGRhdGUgcmVzdWx0 ZWQgIgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC1wYXJzZS1kYXRldGltZS5jIGIvdGVzdHMv dGVzdC1wYXJzZS1kYXRldGltZS5jCmluZGV4IDA1OWM4MTBjZDEuLjFlNzk1NWJjOTYgMTAw NjQ0Ci0tLSBhL3Rlc3RzL3Rlc3QtcGFyc2UtZGF0ZXRpbWUuYworKysgYi90ZXN0cy90ZXN0 LXBhcnNlLWRhdGV0aW1lLmMKQEAgLTM5OCw2ICszOTgsMTQgQEAgbWFpbiAoX0dMX1VOVVNF RCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICBBU1NFUlQgKHJlc3VsdC50dl9zZWMg PT0gdGh1cjIgKyAoKGkgKyAzKSAlIDcgLSA3KSAqIDI0ICogMzYwMCk7CiAgICAgfQogCisg IHAgPSAiMTk3MC0xMi0zMVQyMzo1OTo1OSswMDowMCAtIDEgeWVhciI7ICAvKiBCdWcjNTAx MTUgKi8KKyAgbm93LnR2X3NlYyA9IC0xOworICBub3cudHZfbnNlYyA9IDA7CisgIEFTU0VS VCAocGFyc2VfZGF0ZXRpbWUgKCZyZXN1bHQsIHAsICZub3cpKTsKKyAgTE9HIChwLCBub3cs IHJlc3VsdCk7CisgIEFTU0VSVCAocmVzdWx0LnR2X3NlYyA9PSBub3cudHZfc2VjCisgICAg ICAgICAgJiYgcmVzdWx0LnR2X25zZWMgPT0gbm93LnR2X25zZWMpOworCiAgIHAgPSAiVEhV UlNEQVkgVVRDKzAwIjsgIC8qIFRoZSBlcG9jaCB3YXMgb24gVGh1cnNkYXkuICAqLwogICBu b3cudHZfc2VjID0gMDsKICAgbm93LnR2X25zZWMgPSAwOwotLSAKMi4zMi4wCgo= --------------W46frGS1OlzRd10qPXDtGMXb Content-Type: text/x-patch; charset=UTF-8; name="0001-build-update-gnulib-submodule-to-latest.patch" Content-Disposition: attachment; filename="0001-build-update-gnulib-submodule-to-latest.patch" Content-Transfer-Encoding: base64 RnJvbSBjZjZjODQ5ODk5NjhjNTA4MWM2ODNiYmVmNzc4MjVmYzM1ZTAzYzlkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDUgRmViIDIwMjIgMTE6MDg6NDUgLTA4MDAKU3ViamVjdDogW1BBVENI IDEvMl0gYnVpbGQ6IHVwZGF0ZSBnbnVsaWIgc3VibW9kdWxlIHRvIGxhdGVzdAoKLS0tCiBn bnVsaWIgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9nbnVsaWIgYi9nbnVsaWIKaW5kZXggZmYyMDhkNTQ2Li5h YTBkMWU3ODAgMTYwMDAwCi0tLSBhL2dudWxpYgorKysgYi9nbnVsaWIKQEAgLTEgKzEgQEAK LVN1YnByb2plY3QgY29tbWl0IGZmMjA4ZDU0NmEyNmZlZTM5YTAxOTEyOTdjMTE1NjBkYTc0 YjVkZWUKK1N1YnByb2plY3QgY29tbWl0IGFhMGQxZTc4MDA5MDNmMmQ3NTQzMmQ3OGFhNjRh MGU5NzcwZTgzZjIKLS0gCjIuMzIuMAoK --------------W46frGS1OlzRd10qPXDtGMXb Content-Type: text/x-patch; charset=UTF-8; name="0002-date-test-against-bug-50115.patch" Content-Disposition: attachment; filename="0002-date-test-against-bug-50115.patch" Content-Transfer-Encoding: base64 RnJvbSA4YTNkZWRmZWY5NDc5YzUzY2Q5MDE2MTM5Y2UwMGQ1OGE2MDA2YmEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDUgRmViIDIwMjIgMTM6NDY6NDQgLTA4MDAKU3ViamVjdDogW1BBVENI IDIvMl0gZGF0ZTogdGVzdCBhZ2FpbnN0IGJ1ZyM1MDExNQoKKiB0ZXN0cy9taXNjL2RhdGUu cGw6IEFkZCB0ZXN0LgotLS0KIHRlc3RzL21pc2MvZGF0ZS5wbCB8IDMgKysrCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMvbWlzYy9kYXRl LnBsIGIvdGVzdHMvbWlzYy9kYXRlLnBsCmluZGV4IGU5ZGU4ZTQ1My4uZWY3MDgwZTMzIDEw MDc1NQotLS0gYS90ZXN0cy9taXNjL2RhdGUucGwKKysrIGIvdGVzdHMvbWlzYy9kYXRlLnBs CkBAIC0zMDEsNiArMzAxLDkgQEAgbXkgQFRlc3RzID0KICAgICAgIyBodHRwczovL2J1Z3Mu Z251Lm9yZy8zNDYwOAogICAgICBbJ2RhdGUtY2VudHVyeS1wbHVzJywgJy1kIEAwICsuJSs0 Qy4nLCB7T1VUID0+ICcuKzAxOS4nfV0sCiAKKyAgICAgIyBodHRwczovL2J1Z3MuZ251Lm9y Zy81MDExNQorICAgICBbJ2RhdGUtZXBvY2gtbWludXMtMScsICctdSAtZCAiMTk3MC0xMi0z MVQyMzo1OTo1OSswMDowMCAtIDEgeWVhciInLAorICAgICAge09VVCA9PiAnV2VkIERlYyAz MSAyMzo1OTo1OSBVVEMgMTk2OSd9XSwKIAogICAgICAjIE1pbGl0YXJ5IHRpbWUgem9uZXMs IG5ldyBiZWhhdmlvciAoc2luY2UgOC4zMikKICAgICAgIyBodHRwczovL2xpc3RzLmdudS5v cmcvci9idWctZ251bGliLzIwMTktMDgvbXNnMDAwMDUuaHRtbAotLSAKMi4zMi4wCgo= --------------W46frGS1OlzRd10qPXDtGMXb-- ------------=_1644098161-1920-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Aug 2021 01:47:37 +0000 Received: from localhost ([127.0.0.1]:57823 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGX9d-0007OJ-B6 for submit@debbugs.gnu.org; Wed, 18 Aug 2021 21:47:37 -0400 Received: from lists.gnu.org ([209.51.188.17]:48368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGX5R-0007HV-Dq for submit@debbugs.gnu.org; Wed, 18 Aug 2021 21:43:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44224) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGX5Q-0007Ct-Ux for bug-coreutils@gnu.org; Wed, 18 Aug 2021 21:43:17 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]:33467) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mGX5P-000509-A7 for bug-coreutils@gnu.org; Wed, 18 Aug 2021 21:43:16 -0400 Received: by mail-pl1-x62f.google.com with SMTP id o10so3055778plg.0 for ; Wed, 18 Aug 2021 18:43:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=zfYp30stFkAxx9MLrUDqgeBEjrTxDwFK6f5TdoFNZTM=; b=sDkDF9rGM/4K9DLI5E8V8d+Q+BBhM3bED1MWJYK9hOxjLAsurb0Jpl1vwvfluKPljX CKvDsdtGqK7CZErtqMkQh05NMmIsXMMxX70wbxTSrnwNEaP/UzpbrGwcUNq+ddH3WlVO qnYG55V9oGhn+xPsO6+LQ08VD1yYOY/IMkS0lCA1vhx/DTNLVfaxjZhhtGR03LFrwwK/ mMV/wbQg40QKqQ8nwhFwuavlKixlH1VImqITAld/vOHmmHWBq5OJ2E++DhgHegNdSE5w kF2Gc3JfNRKC2Cy1RRZccbHWchaNcJHmxEq9bvIxnaUVlU8wwnO7jZKapkF3zru6pegl x0NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=zfYp30stFkAxx9MLrUDqgeBEjrTxDwFK6f5TdoFNZTM=; b=Mo1sXAtc8gcPoZAIX83NiKu0wWx3WOVJdgSfNq3QM2t+YNUB07IgWeGRClBaDg1BaP GVzCJvp8+qsw5j0ml1jglqncFoB39KiXeFC/bNf8eYWpKdd7aOUc6hEJsq/yo6L2sbNL 4rZLoZhmTDZbSSXuG6/MPtEz6IH+ZPa/OospLse65Shm1iGZ94sYXJIEfsKnl99zI4HO szD5fbGPrGTXxMlsPwtIikoytoDbRXAK/ga/0twZEUUWjLCxN5r+MbdDyddvt3dV9uS9 0d3p8TSYL8kzuNfd8Vyj5L7kn2akkXg9zTHTWg5r8u+9Gth7h8zx4c8eoiwzazIYc6PE Jh/w== X-Gm-Message-State: AOAM530VZk8n9ydT/YlaPxRN7WGKHycFacWwljPkPA996ZiqrEcVEglm d2cHyJecY075IQLK/s/8cG8r/VGlzxMds7jDcf3uwbbKyAE= X-Google-Smtp-Source: ABdhPJzaXCz/KbXq/P5g1HiHeKFRRQg7OVvJHNEhX5ugbP4M6ZftE30sRkBtndNqNTtmHOFITu/g9XgZu0ne1Klj8pA= X-Received: by 2002:a17:90b:93:: with SMTP id bb19mr12246431pjb.224.1629337392784; Wed, 18 Aug 2021 18:43:12 -0700 (PDT) MIME-Version: 1.0 From: Jeremy Cantrell Date: Wed, 18 Aug 2021 20:43:01 -0500 Message-ID: Subject: date command arithmetic involving the epoch produces "invalid date" To: bug-coreutils@gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=jmcantrell@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 18 Aug 2021 21:47:35 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Using `date --utc --date=3D"..."` with a date specification that decrements by years that should result in epoch=3D0 (1969-12-31T23:59:59+00:00) produces an "invalid date" error message. The following commands should illustrate the problem: Notice that the only difference between the starting dates is 1 second. ```sh $ date -u -d "1970-12-31T23:59:59+00:00 - 1 year" date: invalid date =E2=80=981970-12-31T23:59:59+00:00 - 1 year=E2=80=99 $ date -u -d "1970-12-31T23:59:58+00:00 - 1 year" Wed Dec 31 11:59:58 PM UTC 1969 ``` The dates are only considered invalid if they fall on epoch=3D0: ```sh $ date -u -d "1971-12-31T23:59:59+00:00 - 2 year" date: invalid date =E2=80=981971-12-31T23:59:59+00:00 - 2 year=E2=80=99 $ date -u -d "1972-12-31T23:59:59+00:00 - 3 year" date: invalid date =E2=80=981972-12-31T23:59:59+00:00 - 3 year=E2=80=99 ``` Going the other direction seems to work: ```sh $ date -u -d "1969-01-01T00:00:00+00:00 + 1 year" Thu Jan 1 12:00:00 AM UTC 1970 ``` It only seems to error when decrementing by years: ```sh date -u -d "1970-01-01T00:00:01+00:00 - 1 second" Thu Jan 1 12:00:00 AM UTC 1970 ``` It only seems to error when using --utc, because the following works (my time zone is America/Chicago): ```sh $ date -d "Wed Dec 31 06:00:00 PM CST 1970 - 1 year" +%s 0 ``` ------------=_1644098161-1920-1--