From: Lars Ingebrigtsen <larsi@gnus.org>
To: Maxim Nikulin <m.a.nikulin@gmail.com>
Cc: 55635@debbugs.gnu.org, Paul Eggert <eggert@cs.ucla.edu>
Subject: bug#55635: `make-decoded-time' incorrectly sets DST to nil, it should be -1 (guess)
Date: Thu, 26 May 2022 14:13:52 +0200 [thread overview]
Message-ID: <87o7zkbif3.fsf@gnus.org> (raw)
In-Reply-To: <940415ce-2e31-ae18-3e16-8fdc54504a67@gmail.com> (Maxim Nikulin's message of "Wed, 25 May 2022 21:46:50 +0700")
Maxim Nikulin <m.a.nikulin@gmail.com> writes:
> Consider the following example:
>
> (format-time-string
> "%F %T %Z %z"
> (encode-time
> (make-decoded-time :year 2022 :month 3 :day 31
> :hour 23 :minute 30 :second 0
> :zone "Europe/Madrid"))
> "Europe/Madrid")
> "2022-04-01 00:30:00 CEST +0200"
>
> I believe that the result should be
> "2022-03-31 23:30:00 CEST +0200"
> It can be obtained if :dst -1 is explicitly added to the
> `make-decoded-time' arguments.
>
> Since `make-decoded-time' is defined using `cl-defun', I think, it is
> better to use -1 ("guess") default value for the :dst argument, not
> nil that explicitly says "no daylight saving time".
I think that makes some sense, but on the other hand, that's just a
simple helper function that does what it says -- "with only the keywords
given filled out". But perhaps -1 is less "filled out" than nil in this
case.
> There is `decoded-time-set-defaults', but it does not help
>
> (format-time-string
> "%F %T %Z %z"
> (encode-time
> (decoded-time-set-defaults
> (make-decoded-time :year 2022 :month 3 :day 31
> :hour 23 :minute 30)
> "Europe/Madrid"))
> "Europe/Madrid")
> "2022-04-01 01:30:00 CEST +0200"
>
> This case I have no idea how to fix the issue.
It's this code, I guess:
;; When we don't have a time zone, default to DEFAULT-ZONE without
;; DST if DEFAULT-ZONE if given, and to unknown DST otherwise.
(unless (decoded-time-zone time)
(if default-zone
(progn (setf (decoded-time-zone time) default-zone)
(setf (decoded-time-dst time) nil))
(setf (decoded-time-dst time) -1)))
I've added Paul to the CCs; perhaps he has some comments.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
next prev parent reply other threads:[~2022-05-26 12:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-25 14:46 bug#55635: `make-decoded-time' incorrectly sets DST to nil, it should be -1 (guess) Maxim Nikulin
2022-05-26 12:13 ` Lars Ingebrigtsen [this message]
2022-05-27 2:11 ` Paul Eggert
2022-05-27 10:40 ` Lars Ingebrigtsen
2022-05-27 19:26 ` Paul Eggert
2022-05-28 10:41 ` Lars Ingebrigtsen
2022-05-28 16:31 ` Maxim Nikulin
2022-05-28 16:53 ` Eli Zaretskii
2022-05-28 17:25 ` Paul Eggert
2022-05-29 13:10 ` Lars Ingebrigtsen
2022-05-29 22:04 ` Paul Eggert
2022-05-31 12:25 ` Maxim Nikulin
2022-06-13 21:30 ` Paul Eggert
2022-06-14 15:57 ` Maxim Nikulin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o7zkbif3.fsf@gnus.org \
--to=larsi@gnus.org \
--cc=55635@debbugs.gnu.org \
--cc=eggert@cs.ucla.edu \
--cc=m.a.nikulin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).