master 53e564eebb6: Insulate doc against N. American timezone changes

Paul Eggert <[email protected]> Thu, 23 Jul 2026 14:35:39 -0400 (EDT)
Newsgroups gmane.emacs.diffs
Message-ID <[email protected]>
branch: master
commit 53e564eebb64e8a2816bc038dff7b9fbc22a7b8c
Author: Paul Eggert <[email protected]>
Commit: Paul Eggert <[email protected]>

    Insulate doc against N. American timezone changes
    
    Recent changes to the meaning of "Pacific Time" in western Canada, along
    with possible broader changes to US timekeeping in the US Sunshine
    Protection bill (H.R. 139), make it advisable to avoid using examples
    like "PST" in Emacs documentation as these abbreviations are too likely
    to be ambiguous.  Use more-stable abbreviations like "IST" and "JST".
---
 doc/lispref/os.texi   |  9 +++++----
 doc/misc/calc.texi    | 12 ++++++------
 lisp/erc/erc-stamp.el |  2 +-
 lisp/gnus/nndiary.el  |  3 ++-
 lisp/time-stamp.el    |  2 +-
 5 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 59e0fe90a46..fb2a481c7a3 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1534,9 +1534,10 @@ in.
 The value has the form @code{(@var{offset} @var{abbr})}.  Here
 @var{offset} is an integer giving the number of seconds ahead of Universal Time
 (east of Greenwich).  A negative value means west of Greenwich.  The
-second element, @var{abbr}, is a string giving an abbreviation for the
-time zone, e.g., @samp{"CST"} for China Standard Time or for
-U.S. Central Standard Time.  Both elements can change when daylight
+second element, @var{abbr}, is a string giving a possibly-ambiguous
+abbreviation for the time zone, e.g., @samp{"IST"} for India Standard
+Time, Irish Standard Time, or Israel Standard Time.
+Both elements can change when daylight
 saving time begins or ends; if the user has specified a time zone that
 does not use a seasonal time adjustment, then the value is constant
 through time.
@@ -1981,7 +1982,7 @@ This stands for the year without century (00--99).
 @item %Y
 This stands for the year with century.
 @item %Z
-This stands for the time zone abbreviation (e.g., @samp{EST}).
+This stands for the time zone abbreviation (e.g., @samp{IST}).
 @item %z
 This stands for the time zone numerical offset.  The @samp{z} can be
 preceded by one, two, or three colons; if plain @samp{%z} stands for
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 72690e8d286..636b024d50c 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -17367,8 +17367,8 @@ and @kbd{t U}, the normal argument is then taken from the second-to-top
 stack position.)  This allows you to give a non-integer time zone
 adjustment.  The time-zone argument can also be an HMS form, or
 it can be a variable which is a time zone name in upper- or lower-case.
-For example @samp{tzone(PST) = tzone(8)} and @samp{tzone(pdt) = tzone(7)}
-(for Pacific standard and daylight saving times, respectively).
+For example @samp{tzone(JST) = tzone(-9)} and @samp{tzone(gmt) = tzone(0)}
+(for Japan standard and Greenwich mean time, respectively).
 
 North American and European time zone names are defined as follows.
 These names are obsolescent and new code should not rely on them:
@@ -17399,13 +17399,13 @@ To define time zone names that do not appear in the above table,
 you must modify the Lisp variable @code{math-tzone-names}.  This
 is a list of lists describing the different time zone names; its
 structure is best explained by an example.  The three entries for
-circa-2025 US Pacific Time look like this:
+circa-2026 time in Sydney, Australia might look like this:
 
 @smallexample
 @group
-( ( "PST" 8 0 )    ; Name as an upper-case string, then standard
-  ( "PDT" 8 -1 )   ; adjustment, then daylight saving adjustment.
-  ( "PGT" 8 "PST" "PDT" ) )   ; Generalized time zone.
+(("AEST" -10  0)  ; Name as an upper-case string, then standard
+ ("AEDT" -10 -1)  ; adjustment, then daylight saving adjustment.
+ ("AEGT" -10 "AEST" "AEDT"))  ; Generalized time zone.
 @end group
 @end smallexample
 
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index f80d49ca343..00644c2c997 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -150,7 +150,7 @@ This string specifies the format of the timestamp being echoed in
 the minibuffer."
   :type '(choice (const :tag "Timestamped Monday, 15:04:05"
                         "Timestamped %A, %H:%M:%S")
-                 (const :tag "2006-01-02 15:04:05 MST" "%F %T %Z")
+                 (const :tag "2026-07-21 15:04:05 JST" "%F %T %Z")
                  string))
 
 (defcustom erc-echo-timestamp-zone nil
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index eef00938453..8c7f815652f 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -345,7 +345,8 @@ all.  This may very well take some time.")
   ;; The list of time zone values is obsolescent, and new code should
   ;; not rely on it.  Many of the time zone abbreviations are wrong;
   ;; in particular, all single-letter abbreviations other than "Z" have
-  ;; been wrong since Internet RFC 2822 (2001).  However, the
+  ;; been wrong since Internet RFC 2822 (2001), and abbreviations like "PST"
+  ;; do not match current practice in some locations.  However, the
   ;; abbreviations have not been changed due to backward compatibility
   ;; concerns.
   )
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el
index df5acfa629a..d2bb7acc470 100644
--- a/lisp/time-stamp.el
+++ b/lisp/time-stamp.el
@@ -57,7 +57,7 @@ with %, which are converted as follows:
 %S    seconds
 %w    day number of week, Sunday is 0
 %Y    4-digit year                     %y    2-digit year
-%Z    time zone name: `EST'
+%Z    time zone name: `JST'
 %-z   zone offset with hour: `-08'     %:::z adds colons as needed: `+05:30'
 %5z   zone offset with mins: `-0800'   %:z   adds colon: `-08:00'