GNU bug report logs -
#78096
31.0.50; calendar-iso-to-absolute and %W time string format are inconsistent
Previous Next
Reported by: Ihor Radchenko <yantar92 <at> posteo.net>
Date: Sun, 27 Apr 2025 15:30:02 UTC
Severity: normal
Found in version 31.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 10 May 2025 12:52:14 +0300
with message-id <86selcaj3l.fsf <at> gnu.org>
and subject line Re: bug#78096: 31.0.50; calendar-iso-to-absolute and %W time string format are inconsistent
has caused the debbugs.gnu.org bug report #78096,
regarding 31.0.50; calendar-iso-to-absolute and %W time string format are inconsistent
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
78096: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78096
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi,
This bug was originally reported in
https://orgmode.org/list/174544167676.8.6104466990232889732.690779499 <at> publik.slmail.me
Consider the following:
(calendar-gregorian-from-absolute
;; First day of the second week of 2025
(calendar-iso-to-absolute (list 2 1 2025))) ; => 2025-01-06
Now, let's try to format the same date using `format-time-string'
(format-time-string
"%Y-%m-%d W%W"
(encode-time (parse-time-string "2025-01-06 00:00")))
;; => 2025-01-06 W01
As you can see, week numbering is off by 1 between %W and
`calendar-iso-to-absolute', which is unexpected.
I believe that it is a bug.
In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.42, cairo version 1.18.2) of 2025-04-22 built on localhost
Repository revision: a9ace435a341918eae3e01f2941f5bbca04d7795
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101014
System Description: Gentoo Linux
--
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
[Message part 3 (message/rfc822, inline)]
> Cc: Stephen Berman <stephen.berman <at> gmx.net>, 78096 <at> debbugs.gnu.org
> From: Andreas Schwab <schwab <at> linux-m68k.org>
> Date: Mon, 28 Apr 2025 18:43:18 +0200
>
> On Apr 28 2025, Ihor Radchenko wrote:
>
> > Stephen Berman <stephen.berman <at> gmx.net> writes:
> >
> >> The doc string of `format-time-string' says:
> >>
> >> %U is the week number starting on Sunday, %W starting on Monday,
> >> %V the week number according to ISO 8601.
> >>
> >> (format-time-string
> >> "%Y-%m-%d W%V"
> >> (encode-time (parse-time-string "2025-01-06 00:00")))
> >> => "2025-01-06 W02"
> >
> > That indeed explains it - %W and %V are apparently not the same and
> > `calendar-iso-to-absolute' is closer to %V.
>
> The difference is that %V is always the same for the whole week, whereas
> %V and %W roll over on 01-01 (and use 0 for a partial first week).
>
> $ for y in $(seq 2020 2025); do date -d "$y-01-01" +"%a %U %V %W"; done
> Wed 00 01 00
> Fri 00 53 00
> Sat 00 52 00
> Sun 01 52 00
> Mon 00 01 01
> Wed 00 01 00
AFAIU, this bug report was based on a misunderstanding of the
subtleties of time formats. I've updated the documentation to
clarify the differences between these formats, and I'm therefore
closing this bug.
This bug report was last modified 14 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.