diff options
| author | Philip Paeps <philip@FreeBSD.org> | 2025-12-11 07:50:43 +0100 |
|---|---|---|
| committer | Philip Paeps <philip@FreeBSD.org> | 2025-12-11 07:50:43 +0100 |
| commit | 7d227f6f7a5c0ab6aaae3dbb3b8c87cd29bd0b07 (patch) | |
| tree | d33a28a8f3622a173798996560f47892e9cbf7b0 | |
| parent | 09f889d4a3f4aa26f8029286f4d39de3413346fc (diff) | |
Import tzdata 2025cvendor/tzdata/tzdata2025cvendor/tzdata
| -rw-r--r-- | CONTRIBUTING | 36 | ||||
| -rw-r--r-- | Makefile | 196 | ||||
| -rw-r--r-- | NEWS | 135 | ||||
| -rw-r--r-- | README | 14 | ||||
| -rw-r--r-- | SECURITY | 2 | ||||
| -rw-r--r-- | africa | 9 | ||||
| -rw-r--r-- | antarctica | 12 | ||||
| -rw-r--r-- | asia | 6 | ||||
| -rw-r--r-- | australasia | 10 | ||||
| -rw-r--r-- | backzone | 8 | ||||
| -rw-r--r-- | calendars | 27 | ||||
| -rw-r--r-- | checknow.awk | 5 | ||||
| -rw-r--r-- | europe | 52 | ||||
| -rw-r--r-- | iso3166.tab | 18 | ||||
| -rw-r--r-- | leap-seconds.list | 8 | ||||
| -rw-r--r-- | leapseconds | 19 | ||||
| -rw-r--r-- | leapseconds.awk | 11 | ||||
| -rw-r--r-- | northamerica | 53 | ||||
| -rw-r--r-- | southamerica | 6 | ||||
| -rw-r--r-- | theory.html | 367 | ||||
| -rw-r--r-- | version | 2 | ||||
| -rw-r--r-- | zone1970.tab | 24 | ||||
| -rw-r--r-- | zonenow.tab | 94 |
23 files changed, 694 insertions, 420 deletions
diff --git a/CONTRIBUTING b/CONTRIBUTING index f6edbd3be7d3..c5fa803f7275 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -10,26 +10,27 @@ warning, the data entries do not cover all of civil time before 1970, and undoubtedly errors remain in the code and data. Feel free to fill gaps or fix mistakes, and please email improvements to <tz@iana.org> for use in the future. In your email, please give -reliable sources that reviewers can check. +reliable sources that reviewers can check. The mailing list and its +archives are public, so please do not send confidential information. ## Contributing technical changes To email small changes, please run a POSIX shell command like -'diff -u old/europe new/europe >myfix.patch', and attach -'myfix.patch' to the email. +‘diff -u old/europe new/europe >myfix.patch’, and attach +‘myfix.patch’ to the email. For more-elaborate or possibly controversial changes, such as renaming, adding or removing zones, please read -"Theory and pragmatics of the tz code and data" +“Theory and pragmatics of the tz code and data” <https://www.iana.org/time-zones/repository/theory.html>. It is also good to browse the mailing list archives <https://lists.iana.org/hyperkitty/list/tz@iana.org/> for examples of patches that tend to work well. Changes should contain commentary citing reliable sources. -Citations should use "https:" URLs if available. +Citations should use ‘https:’ URLs if available. For changes that fix sensitive security-related bugs, please see the -distribution's 'SECURITY' file. +distribution’s SECURITY file. Please submit changes against either the latest release <https://www.iana.org/time-zones> or the main branch of the development @@ -54,11 +55,11 @@ If you use Git the following workflow may be helpful: git checkout -b mybranch - * Sleuth by using 'git blame'. For example, when fixing data for - Africa/Sao_Tome, if the command 'git blame africa' outputs a line - '2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone - Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should - provide some justification for the 'Zone Africa/Sao_Tome' line. + * Sleuth by using ‘git blame’. For example, when fixing data for + Africa/Sao_Tome, if the command ‘git blame africa’ outputs a line + ‘2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone + Africa/Sao_Tome 0:26:56 - LMT 1884’, commit 2951fa3b should + provide some justification for the ‘Zone Africa/Sao_Tome’ line. * Edit source files. Include commentary that justifies the changes by citing reliable sources. @@ -69,28 +70,31 @@ If you use Git the following workflow may be helpful: ./zdump -v America/Los_Angeles Although builds assume only basic POSIX, they use extra features - if available. 'make check' accesses validator.w3.org unless you - lack 'curl' or use 'make CURL=:'. If you have the latest GCC, - "make CFLAGS='$(GCC_DEBUG_FLAGS)'" does extra checking. + if available. ‘make check’ accesses validator.w3.org unless you + lack ‘curl’ or use ‘make CURL=:’. If you have the latest GCC, + ‘make CFLAGS='$(GCC_DEBUG_FLAGS)'’ does extra checking. * For each separable change, commit it in the new branch, e.g.: git add northamerica git commit - See recent 'git log' output for the commit-message style. + See recent ‘git log’ output for the commit-message style. * Create patch files 0001-..., 0002-..., ... git format-patch main + * Check that the patch files and your email setup contain only + information that you want to make public. + * After reviewing the patch files, send the patches to <tz@iana.org> for others to review. git send-email main For an archived example of such an email, see - "[PROPOSED] Fix off-by-1 error for Jamaica and T&C before 1913" + “[PROPOSED] Fix off-by-1 error for Jamaica and T&C before 1913” <https://mm.icann.org/pipermail/tz/2018-February/026122.html>. * Start anew by getting current with the main branch again @@ -3,17 +3,30 @@ # 2009-05-17 by Arthur David Olson. # Request POSIX conformance; this must be the first non-comment line. .POSIX: +# By default, builds of code and data assume POSIX.1-2001 or later; +# this assumption can be relaxed by tailoring the build as described below. # On older platforms you may need to scrounge for POSIX conformance. # For example, on Solaris 10 (2005) with Sun Studio 12 aka Sun C 5.9 (2007), # use 'PATH=/usr/xpg4/bin:$PATH make CC=c99'. +# Reproducible builds of distribution tarballs also need a copy of the +# Git repository, and assume the behavior of the following programs +# (or later versions): +# Git 2.7.0 (2016) +# GNU Coreutils 6.3 (2006) +# GNU Tar 1.14 (2004) +# GnuPG 1.4 (2004) +# Although tzdb does not come with a software bill of materials, +# you should be able to construct one based on the above information, +# your platform, and the way you use this Makefile. # To affect how this Makefile works, you can run a shell script like this: # # #!/bin/sh -# make CC='gcc -std=gnu23' "$@" +# make CFLAGS='-O2 -DHAVE_GETTEXT=0' "$@" # -# This example script is appropriate for a circa 2024 GNU/Linux system -# where a non-default setting enables this package's optional use of C23. +# This example script is appropriate for a GNU/Linux system +# which needs more optimization than default, and which does not want +# gettext's internationalization of diagnostics. # # Alternatively, you can simply edit this Makefile to tailor the following # macro definitions. @@ -150,8 +163,9 @@ TIME_T_ALTERNATIVES_TAIL = int_least32_t.ck uint_least32_t.ck \ # below. If you want both sets of data available, with leap seconds counted # normally, use # REDO= right_posix -# below. POSIX mandates that leap seconds not be counted; for compatibility -# with it, use "posix_only" or "posix_right". Use POSIX time on systems with +# below. POSIX mandates that leap seconds not be counted, and a +# nonnegative TZ_CHANGE_INTERVAL also assumes this, so to be compatible with +# these, use "posix_only" or "posix_right". Use POSIX time on systems with # leap smearing; this can work better than unsmeared "right" time with # applications that are not leap second aware, and is closer to unsmeared # "right" time than unsmeared POSIX time is (e.g., 0.5 vs 1.0 s max error). @@ -206,6 +220,12 @@ PACKRATLIST= UTF8_LOCALE= en_US.utf8 +# Extra flags for producing man page files like tzfile.5.txt. +# These flags are used only if groff (or mandoc) is present. +# Each option should begin with "-" and should lack shell metacharacters. +# Plausible options include -Tascii and -Tutf8. +MANFLAGS= -Tutf8 + # Non-default libraries needed to link. # On some hosts, this should have -lintl unless CFLAGS has -DHAVE_GETTEXT=0. LDLIBS= @@ -219,14 +239,19 @@ LDLIBS= # -DEPOCH_OFFSET=N if the 'time' function returns a value N greater # than what POSIX specifies, assuming local time is UT. # For example, N is 252460800 on AmigaOS. +# -DFREE_PRESERVES_ERRNO=[01] if the 'free' function munges or preserves errno +# (default is guessed) # -DHAVE_DECL_ASCTIME_R=0 if <time.h> does not declare asctime_r # on POSIX platforms predating POSIX.1-2024 # -DHAVE_DECL_ENVIRON if <unistd.h> declares 'environ' # -DHAVE_DECL_TIMEGM=0 if <time.h> does not declare timegm # -DHAVE_DIRECT_H if mkdir needs <direct.h> (MS-Windows) +# -DHAVE_FCHMOD=0 if your system lacks the fchmod function # -DHAVE__GENERIC=0 if _Generic does not work* +# -DHAVE_GETEUID=0 if gete?[ug]id do not work # -DHAVE_GETRANDOM if getrandom works (e.g., GNU/Linux), # -DHAVE_GETRANDOM=0 to avoid using getrandom +# -DHAVE_GETRESUID=0 if getres[ug]id do not work # -DHAVE_GETTEXT if gettext works (e.g., GNU/Linux, FreeBSD, Solaris), # where LDLIBS also needs to contain -lintl on some hosts; # -DHAVE_GETTEXT=0 to avoid using gettext @@ -234,28 +259,43 @@ LDLIBS= # ctime_r and asctime_r incompatibly with POSIX.1-2017 and earlier # (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). # -DHAVE_INTTYPES_H=0 if <inttypes.h> does not work*+ +# -DHAVE_ISSETUGID=1 if issetugid works, 0 otherwise (default is guessed) +# If 0, you may also use -DHAVE_SYS_AUXV_H=1 if <sys/auxv.h> works, +# 0 otherwise (default is guessed). # -DHAVE_LINK=0 if your system lacks a link function # -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function # -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz # localtime_rz can make zdump significantly faster, but is nonstandard. # -DHAVE_MALLOC_ERRNO=0 if malloc etc. do not set errno on failure. +# -DHAVE_MEMPCPY=1 if your system has mempcpy, 0 if not (default is guessed) # -DHAVE_POSIX_DECLS=0 if your system's include files do not declare -# functions like 'link' or variables like 'tzname' required by POSIX +# variables like 'tzname' required by POSIX +# -DHAVE_PWD_H=0 if your system lacks pwd.h, grp.h and corresponding functions +# If 0, you may also need -Dgid_t=G -Duid_t=U +# to define gid_t and uid_t to be types G and U. # -DHAVE_SETENV=0 if your system lacks the setenv function +# -DHAVE_SETMODE=[01] if your system lacks or has the setmode and getmode +# functions (default is guessed) # -DHAVE_SNPRINTF=0 if your system lacks the snprintf function+ # -DHAVE_STDCKDINT_H=0 if neither <stdckdint.h> nor substitutes like # __builtin_add_overflow work* # -DHAVE_STDINT_H=0 if <stdint.h> does not work*+ # -DHAVE_STRFTIME_L if <time.h> declares locale_t and strftime_l # -DHAVE_STRDUP=0 if your system lacks the strdup function +# -DHAVE_STRNLEN=0 if your system lacks the strnlen function+ # -DHAVE_STRTOLL=0 if your system lacks the strtoll function+ +# -DHAVE_STRUCT_STAT_ST_CTIM=0 if struct stat lacks a member st_ctim+ +# -DHAVE_STRUCT_TIMESPEC=0 if your system lacks struct timespec+ # -DHAVE_SYMLINK=0 if your system lacks the symlink function # -DHAVE_SYS_STAT_H=0 if <sys/stat.h> does not work* +# If 0, you may also need -Dmode_t=M to define mode_t to be type M. # -DHAVE_TZSET=0 if your system lacks a tzset function # -DHAVE_UNISTD_H=0 if <unistd.h> does not work* # -DHAVE_UTMPX_H=0 if <utmpx.h> does not work* # -Dlocale_t=XXX if your system uses XXX instead of locale_t # -DMKTIME_MIGHT_OVERFLOW if mktime might fail due to time_t overflow +# -DOPENAT_TZDIR if tzset should use openat on TZDIR then a relative open. +# See localtime.c for details. # -DPORT_TO_C89 if tzcode should also run on mostly-C89 platforms+ # Typically it is better to use a later standard. For example, # with GCC 4.9.4 (2016), prefer '-std=gnu11' to '-DPORT_TO_C89'. @@ -274,8 +314,36 @@ LDLIBS= # -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; # not needed by the main-program tz code, which is single-threaded. # Append other compiler flags as needed, e.g., -pthread on GNU/Linux. +# The following options can also be used: +# -DTHREAD_PREFER_SINGLE to prefer speed in single-threaded apps, +# at some cost in CPU time and energy in multi-threaded apps. +# The following options can also be used: +# -DHAVE___ISTHREADED=1 if there is an extern int __isthreaded +# variable, 0 otherwise (default is guessed) +# -DHAVE_SYS_SINGLE_THREADED_H=0 if <sys/single_threaded.h> works, +# 0 otherwise (default is guessed) +# -DTHREAD_RWLOCK to use read-write locks intead of mutexes. +# This can improve paralellism and thus save real time +# if many threads call tzcode functions simultaneously. +# It also costs CPU time and thus energy. +# -DTHREAD_TM_MULTI to have gmtime, localtime, and offtime +# return different struct tm * addresses in different threads. +# This supports unportable programs that call +# gmtime/localtime/offtime when they should call +# gmtime_r/localtime_r/offtime_r to avoid races. +# Because the corresponding storage is freed on thread exit, +# this option is incompatible with POSIX.1-2024 and earlier. +# It also costs CPU time and memory. # -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t # This is intended for internal use only; it mangles external names. +# -DTZ_CHANGE_INTERVAL=N if functions depending on TZ should check +# no more often than every N seconds for TZif file changes. +# If N is negative (the default), no such checking is done. +# This option is intended for platforms that want localtime etc. +# to respond to changes to a file selected by TZ, including to +# TZDEFAULT (normally /etc/localtime) if TZ is unset. +# On these platforms, REDO should be "posix_only" or "posix_right". +# This option does not affect tzalloc-allocated objects. # -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" # -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; # the default is system-supplied, typically "/usr/lib/locale" @@ -314,7 +382,7 @@ LDLIBS= # Select instrumentation via "make GCC_INSTRUMENT='whatever'". GCC_INSTRUMENT = \ -fsanitize=undefined -fsanitize-address-use-after-scope \ - -fsanitize-undefined-trap-on-error -fstack-protector + -fsanitize-trap=all -fstack-protector # Omit -fanalyzer from GCC_DEBUG_FLAGS, as it makes GCC too slow. GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 \ $(GCC_INSTRUMENT) \ @@ -393,7 +461,9 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 \ # functions to be added to the time conversion library. # "offtime" is like "gmtime" except that it accepts a second (long) argument # that gives an offset to add to the time_t when converting it. -# I.e., "offtime" is like calling "localtime_rz" with a fixed-offset zone. +# "offtime_r" is to "offtime" what "gmtime_r" is to "gmtime". +# I.e., "offtime" and "offtime_r" are like calling "localtime_rz" +# with a fixed-offset zone. # "timelocal" is nearly equivalent to "mktime". # "timeoff" is like "timegm" except that it accepts a second (long) argument # that gives an offset to use when converting to a time_t. @@ -451,6 +521,11 @@ leaplist_URI = \ https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list # The file is generated by the IERS Earth Orientation Centre, in Paris. leaplist_TZ = Europe/Paris +# +# To fetch leap-seconds.list from NIST via a less-secure protocol +# and with less-volatile metadata, use these settings: +#leaplist_URI = ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list +#leaplist_TZ = America/Denver # The zic command and its arguments. @@ -510,13 +585,10 @@ SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' -# These non-alphabetic, non-ASCII printable characters are Latin-1, -# and so are likely displayable even in editors like XEmacs 21 -# that have limited display capabilities. -UNUSUAL_OK_LATIN_1 = ¡¢£¤¥¦§¨©«¬®¯°±²³´¶·¸¹»¼½¾¿×÷ -# Non-ASCII non-letters that OK_CHAR allows, as these characters are -# useful in commentary. -UNUSUAL_OK_CHARSET= $(UNUSUAL_OK_LATIN_1) +# These non-alphabetic, non-ASCII printable characters are +# used in commentary or in generated *.txt files +# and are not likely to cause confusion. +UNUSUAL_OK_CHARSET= §«°±»½¾×–‘’“”•→−≤★⟨⟩⯪ # Put this in a bracket expression to match spaces. s = [:space:] @@ -525,9 +597,6 @@ s = [:space:] # This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and # multibyte letters are also allowed so that commentary can contain a # few safe symbols and people's names and can quote non-English sources. -# Other non-letters are limited to ASCII renderings for the -# convenience of maintainers using XEmacs 21.5.34, which by default -# mishandles Unicode characters U+0100 and greater. OK_CHAR= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]' # SAFE_LINE matches a line of safe characters. @@ -874,9 +943,9 @@ UTF8_LOCALE_MISSING = \ character-set.ck: $(ENCHILADA) $(UTF8_LOCALE_MISSING) || { \ sharp='#' && \ - ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ - $(MISC) $(SOURCES) $(WEB_PAGES) \ - CONTRIBUTING LICENSE README SECURITY \ + ! grep -Env $(SAFE_LINE) $(MANS) date.1 \ + $(MISC) $(SOURCES) \ + LICENSE \ version tzdata.zi && \ ! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_'$(OK_CHAR)'*$$' \ Makefile && \ @@ -888,11 +957,9 @@ character-set.ck: $(ENCHILADA) white-space.ck: $(ENCHILADA) $(UTF8_LOCALE_MISSING) || { \ - enchilada='$(ENCHILADA)' && \ patfmt=' \t|[\f\r\v]' && pat=$$(printf "$$patfmt\\n") && \ ! grep -En "$$pat|[$s]\$$" \ - $${enchilada%leap-seconds.list*} \ - $${enchilada#*leap-seconds.list}; \ + $(ENCHILADA:leap-seconds.list=); \ } touch $@ @@ -959,8 +1026,10 @@ now.ck: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab ./zdump -i -t 0,$$future \ $$(find "$$PWD/$@d" -name Etc -prune \ -o -type f ! -name '*.tab' -print) \ - >$@d/zdump-1970.tab + >$@d/zdump-1970.tab && \ $(AWK) \ + -v now=$$now \ + -v now_out=$@.out \ -v zdump_table=$@d/zdump-now.tab \ -f checknow.awk zonenow.tab $(AWK) \ @@ -970,7 +1039,8 @@ now.ck: checknow.awk date tzdata.zi zdump zic zone1970.tab zonenow.tab -v zdump_table=$@d/zdump-1970.tab \ -f checknow.awk rm -fr $@d - touch $@ + touch $@.out + mv $@.out $@ tables.ck: checktab.awk $(YDATA) backward zone.tab zone1970.tab for tab in $(ZONETABLES); do \ @@ -1031,7 +1101,7 @@ zishrink-posix.ck zishrink-right.ck: \ clean_misc: rm -fr *.ckd *.dir - rm -f *.ck *.core *.o *.out core core.* \ + rm -f *.ck *.core *.o *.out *.t core core.* \ date tzdir.h tzselect version.h zdump zic libtz.a clean: clean_misc rm -fr tzdb-*/ @@ -1059,7 +1129,7 @@ zdump.8.txt: zdump.8 zic.8.txt: zic.8 $(MANTXTS): workman.sh - LC_ALL=C sh workman.sh $(@:.txt=) >$@.out + LC_ALL=C sh workman.sh $(MANFLAGS) $(@:.txt=) >$@.out mv $@.out $@ # Set file timestamps deterministically if possible, @@ -1108,7 +1178,7 @@ set-timestamps.out: $(EIGHT_YARDS) if git diff --quiet HEAD $$file; then \ time=$$(TZ=UTC0 git log -1 \ --format='tformat:%cd' \ - --date='format:%Y-%m-%dT%H:%M:%SZ' \ + --date='format-local:%Y-%m-%dT%H:%M:%SZ' \ $$file) && \ echo "+ touch -md $$time $$file" && \ touch -md $$time $$file; \ @@ -1207,12 +1277,12 @@ $(TIME_T_ALTERNATIVES): $(VERSION_DEPS) touch $@ TRADITIONAL_ASC = \ - tzcode$(VERSION).tar.gz.asc \ - tzdata$(VERSION).tar.gz.asc + tzcode$(VERSION).tar.gz.asc.t \ + tzdata$(VERSION).tar.gz.asc.t REARGUARD_ASC = \ - tzdata$(VERSION)-rearguard.tar.gz.asc + tzdata$(VERSION)-rearguard.tar.gz.asc.t ALL_ASC = $(TRADITIONAL_ASC) $(REARGUARD_ASC) \ - tzdb-$(VERSION).tar.lz.asc + tzdb-$(VERSION).tar.lz.asc.t tarballs rearguard_tarballs tailored_tarballs traditional_tarballs \ signatures rearguard_signatures traditional_signatures: \ @@ -1224,29 +1294,31 @@ signatures rearguard_signatures traditional_signatures: \ # other means. Ordinarily these rules are used only by the above # non-_version rules, which set VERSION on the 'make' command line. tarballs_version: traditional_tarballs_version rearguard_tarballs_version \ - tzdb-$(VERSION).tar.lz + tzdb-$(VERSION).tar.lz.t rearguard_tarballs_version: \ - tzdata$(VERSION)-rearguard.tar.gz + tzdata$(VERSION)-rearguard.tar.gz.t traditional_tarballs_version: \ - tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz + tzcode$(VERSION).tar.gz.t tzdata$(VERSION).tar.gz.t tailored_tarballs_version: \ - tzdata$(VERSION)-tailored.tar.gz + tzdata$(VERSION)-tailored.tar.gz.t signatures_version: $(ALL_ASC) rearguard_signatures_version: $(REARGUARD_ASC) traditional_signatures_version: $(TRADITIONAL_ASC) -tzcode$(VERSION).tar.gz: set-timestamps.out +tzcode$(VERSION).tar.gz.t: set-timestamps.out $(SETUP_TAR) && \ $$TAR -cf - \ $(COMMON) $(DOCS) $(SOURCES) | \ - gzip $(GZIPFLAGS) >$@.out - mv $@.out $@ + gzip $(GZIPFLAGS) >$(@:.t=) + $(SET_TIMESTAMP) $(@:.t=) $(COMMON) $(DOCS) $(SOURCES) + touch $@ -tzdata$(VERSION).tar.gz: set-timestamps.out +tzdata$(VERSION).tar.gz.t: set-timestamps.out $(SETUP_TAR) && \ $$TAR -cf - $(TZDATA_DIST) | \ - gzip $(GZIPFLAGS) >$@.out - mv $@.out $@ + gzip $(GZIPFLAGS) >$(@:.t=) + $(SET_TIMESTAMP) $(@:.t=) $(TZDATA_DIST) + touch $@ # Create empty files with a reproducible timestamp. CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00 @@ -1255,7 +1327,7 @@ CREATE_EMPTY = TZ=UTC0 touch -mt 202010122253.00 # for backwards compatibility with tz releases 2018e through 2022a. # They should go away eventually. To build rearguard tarballs you # can instead use 'make DATAFORM=rearguard tailored_tarballs'. -tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out +tzdata$(VERSION)-rearguard.tar.gz.t: rearguard.zi set-timestamps.out rm -fr $@.dir mkdir $@.dir ln $(TZDATA_DIST) $@.dir @@ -1273,8 +1345,11 @@ tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out (cd $@.dir && \ $$TAR -cf - \ $(TZDATA_DIST) pacificnew | \ - gzip $(GZIPFLAGS)) >$@.out - mv $@.out $@ + gzip $(GZIPFLAGS)) >$(@:.t=) + $(SET_TIMESTAMP) $(@:.t=) \ + $$(cd $@.dir && \ + ls $(TZDATA_DIST) pacificnew | sed 's,^,$@.dir/,') + touch $@ # Create a tailored tarball suitable for TZUpdater and compatible tools. # For example, 'make DATAFORM=vanguard tailored_tarballs' makes a tarball @@ -1283,7 +1358,7 @@ tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out # traditional tarball, as data entries are put into 'etcetera' even if they # came from some other source file. However, the effect should be the same # for ordinary use, which reads all the source files. -tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out +tzdata$(VERSION)-tailored.tar.gz.t: set-timestamps.out rm -fr $@.dir mkdir $@.dir : The dummy pacificnew pacifies TZUpdater 2.3.1 and earlier. @@ -1295,7 +1370,7 @@ tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out cd $@.dir && \ $(CREATE_EMPTY) $(PRIMARY_YDATA) $(NDATA) backward \ $$pacificnew - (grep '^#' tzdata.zi && echo && cat $(DATAFORM).zi) \ + (sed '/^#/!d' tzdata.zi && echo && cat $(DATAFORM).zi) \ >$@.dir/etcetera touch -mr tzdata.zi $@.dir/etcetera sed -n \ @@ -1316,24 +1391,29 @@ tzdata$(VERSION)-tailored.tar.gz: set-timestamps.out ln $$links $@.dir $(SETUP_TAR) && \ (cd $@.dir && \ - $$TAR -cf - * | gzip $(GZIPFLAGS)) >$@.out - mv $@.out $@ + $$TAR -cf - *) | gzip $(GZIPFLAGS) >$(@:.t=) + $(SET_TIMESTAMP) $(@:.t=) \ + $$(cd $@.dir && ls * | sed 's,^,$@.dir/,') + touch $@ -tzdb-$(VERSION).tar.lz: set-timestamps.out set-tzs-timestamp.out +tzdb-$(VERSION).tar.lz.t: set-timestamps.out set-tzs-timestamp.out rm -fr tzdb-$(VERSION) mkdir tzdb-$(VERSION) ln $(ENCHILADA) tzdb-$(VERSION) $(SET_TIMESTAMP) tzdb-$(VERSION) tzdb-$(VERSION)/* $(SETUP_TAR) && \ - $$TAR -cf - tzdb-$(VERSION) | lzip -9 >$@.out - mv $@.out $@ + $$TAR -cf - tzdb-$(VERSION) | lzip -9 >$(@:.t=) + $(SET_TIMESTAMP) $(@:.t=) tzdb-$(VERSION) + touch $@ -tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz -tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz -tzdata$(VERSION)-rearguard.tar.gz.asc: tzdata$(VERSION)-rearguard.tar.gz -tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz +tzcode$(VERSION).tar.gz.asc.t: tzcode$(VERSION).tar.gz.t +tzdata$(VERSION).tar.gz.asc.t: tzdata$(VERSION).tar.gz.t +tzdata$(VERSION)-rearguard.tar.gz.asc.t: tzdata$(VERSION)-rearguard.tar.gz.t +tzdb-$(VERSION).tar.lz.asc.t: tzdb-$(VERSION).tar.lz.t $(ALL_ASC): - $(GPG) --armor --detach-sign $? + $(GPG) --armor --detach-sign $(?:.t=) + $(SET_TIMESTAMP) $(@:.t=) $(?:.t=) + touch $@ TYPECHECK_CFLAGS = $(CFLAGS) -DTYPECHECK -D__time_t_defined -D_TIME_T typecheck: long-long.ck unsigned.ck @@ -1,5 +1,140 @@ News for the tz database +Release 2025c - 2025-12-10 14:42:37 -0800 + + Briefly: + Several code changes for compatibility with FreeBSD. + + Changes to past timestamps + + Baja California agreed with California’s DST rules in 1953 and in + 1961 through 1975, instead of observing standard time all year. + (Thanks to Alois Treindl.) + + Changes to build procedure + + Files in distributed tarballs now have correct commit times. + Formerly, the committer’s time zone was incorrectly ignored. + + Distribution products (*.asc, *.gz, and *.lz) now have + reproducible timestamps. Formerly, only the contents of the + compressed tarballs had reproducible timestamps. + + By default, distributed formatted man pages (*.txt) now use UTF-8 + and are left-adjusted more consistently. A new Makefile macro + MANFLAGS can override these defaults. (Thanks to G. Branden + Robinson for inspiring these changes.) + + Changes to code + + An unset TZ is no longer invalid when /etc/localtime is missing, + and is abbreviated "UTC" not "-00". This reverts to 2024b behavior. + (Problem and patch reported by Dag-Erling Smørgrav.) + + New function offtime_r, short for fixed-offset localtime_rz. + It is defined if STD_INSPIRED is defined. + (Patch from Dag-Erling Smørgrav.) + + tzset etc. are now more cautious about questionable TZ settings. + Privileged programs now reject TZ settings that start with '/', + unless they are TZDEFAULT (default "/etc/localtime") or + start with TZDIR then '/' (default "/usr/share/zoneinfo/"). + Unprivileged programs now require files to be regular files + and reject relative names containing ".." directory components; + formerly, only privileged programs did those two things. + These changes were inspired by similar behavior in FreeBSD. + On NetBSD, unprivileged programs now use O_REGULAR to check + whether a TZ setting starting with '/' names a regular file, + avoiding a minor security race still present elsewhere. + TZ strings taken from tzalloc arguments are now treated with + no less caution than TZ strings taken from the environment, as + the old undocumented behavior would have been hard to explain. + tzset etc. no longer use the ‘access’ system call to check access; + instead they now use the system calls issetugid, getauxval, + getresuid/getresgid, and geteuid/getegid/getuid/getgid (whichever + first works) to test whether a program is privileged. + Compile with -DHAVE_SYS_AUXV_H=[01] to enable or disable + <sys/auxv.h> which (if it defines AT_SECURE) enables getauxval, + and compile with -DHAVE_ISSETUGID=[01], -DHAVE_GETRESUID=[01], and + -DHAVE_GETEUID=[01] to enable or disable the other calls’ use. + + The new CFLAGS option -DTZ_CHANGE_INTERVAL=N makes tzset etc. + check for TZif file changes if the in-memory data are N seconds + old or more, and are derived from the TZ environment variable. + This is intended for platforms that want tzset etc. to reflect + changes to whatever file TZ selects (including changes to + /etc/localtime if TZ is unset). If N is negative (the default) + these checks are omitted; this is the traditional behavior. + + The new CFLAGS options -DHAVE_STRUCT_STAT_ST_CTIM=0 and + -DHAVE_STRUCT_TIMESPEC=0 port to non-POSIX.1-2008 platforms + that lack st_ctim and struct timespec, respectively. + + tzset etc. now treat ' ' like '_' in time zone abbreviations, + just as they treat other invalid bytes. This continues the + transition begun in release 96k, which removed spaces in tzdata + because the spaces break time string parsers. + + The new CFLAGS option -DTHREAD_PREFER_SINGLE causes tzcode + in single-threaded processes to avoid locks, as FreeBSD does. + This can save time in single-threaded apps. The threadedness + testing costs CPU time and energy in multi-threaded apps. + New options -DHAVE___ISTHREADED and -DHAVE_SYS_SINGLE_THREADED_H + can help configure how to test for single-threadedness. + + The new CFLAGS option -DTHREAD_RWLOCK uses read-write locks, as + macOS does, instead of mutexes. This saves real time when TZ is + rarely changing and many threads call tzcode simultaneously. + It costs more CPU time and energy. + + The new CFLAGS option -TTHREAD_TM_MULTI causes localtime to return + a pointer to thread-specific memory, as FreeBSD does, instead of + to the same memory in all threads. This supports unportable + programs that incorrectly use localtime instead of localtime_r. + This option affects gmtime and offtime similarly to localtime. + Because the corresponding storage is freed on thread exit, this + option is incompatible with POSIX.1-2024 and earlier. It also + costs CPU time and memory. + + tzfree now preserves errno, consistently with POSIX.1-2024 ‘free’. + + tzcode now uses mempcpy if available, guessing its availability. + Compile with -DHAVE_MEMPCPY=1 or 0 to override the guess. + + tzcode now uses strnlen to improve asymptotic performance a bit. + Compile with -DHAVE_STRNLEN=0 if your platform lacks it. + + tzcode now hand-declares unistd.h-provided symbols like getopt + if HAVE_UNISTD_H=0, not if HAVE_POSIX_DECLS=0. + + tzset etc. now have an experimental OPENAT_TZDIR option; + see Makefile and localtime.c for details. + + On platforms like GNU/Hurd that do not define PATH_MAX, + exceedingly long TZ strings no longer fail merely because they + exceed an arbitrary file name length limit imposed by tzcode. + + zic has new options inspired by FreeBSD. ‘-D’ skips creation of + output ancestor directories, ‘-m MODE’ sets output files’ mode, + and ‘-u OWNER[:GROUP]’ sets output files’ owner and group. + + zic now uses the fdopen function, which was standardized by + POSIX.1-1988 and is now safe to use in portable code. + This replaces its use of the older umask function, which + complicated maintenance. + + Changes to commentary + + The leapseconds file contains commentary about the IERS and NIST + last-modified and expiration timestamps for leap second data. + (Thanks to Judah Levine.) + + Commentary now also uses characters from the set –‘’“”•≤ as this + can be useful and should work with current applications. This + also affects data in iso3166.tab and zone1970.tab, which now + contain strings like “Côte d’Ivoire” instead of “Côte d'Ivoire”. + + Release 2025b - 2025-03-22 13:40:46 -0700 Briefly: @@ -1,8 +1,8 @@ README for the tz distribution -"Where do I set the hands of the clock?" -- Les Tremayne as The King -"Oh that--you can set them any place you want." -- Frank Baxter as The Scientist - (from the Bell System film "About Time") +“Where do I set the hands of the clock?” – Les Tremayne as The King +“Oh that – you can set them any place you want.” – Frank Baxter as The Scientist + (from the Bell System film “About Time”) The Time Zone Database (called tz, tzdb or zoneinfo) contains code and data that represent the history of local time for many representative @@ -13,12 +13,12 @@ and daylight-saving rules. See <https://www.iana.org/time-zones/repository/tz-link.html> or the file tz-link.html for how to acquire the code and data. -Once acquired, read the leading comments in the file "Makefile" +Once acquired, read the leading comments in the file ‘Makefile’ and make any changes needed to make things right for your system, especially when using a platform other than current GNU/Linux. Then run the following commands, substituting your desired -installation directory for "$HOME/tzdir": +installation directory for ‘$HOME/tzdir’: make TOPDIR="$HOME/tzdir" install "$HOME/tzdir/usr/bin/zdump" -v America/Los_Angeles @@ -39,12 +39,12 @@ The information in the time zone data files is by no means authoritative; fixes and enhancements are welcome. Please see the file CONTRIBUTING for details. -Thanks to these Time Zone Caballeros who've made major contributions to the +Thanks to these Time Zone Caballeros who’ve made major contributions to the time conversion package: Keith Bostic; Bob Devine; Paul Eggert; Robert Elz; Guy Harris; Mark Horton; John Mackin; and Bradley White. Thanks also to Michael Bloom, Art Neilson, Stephen Prince, John Sovereign, and Frank Wales for testing work, and to Gwillim Law for checking local mean time data. -Thanks in particular to Arthur David Olson, the project's founder and first +Thanks in particular to Arthur David Olson, the project’s founder and first maintainer, to whom the time zone community owes the greatest debt of all. None of them are responsible for remaining errors. @@ -1,7 +1,7 @@ Please report any sensitive security-related bugs via email to the tzdb designated coordinators, currently Paul Eggert <eggert@cs.ucla.edu> and Tim Parenti <tim@timtimeonline.com>. -Put "tzdb security" at the start of your email's subject line. +Put “tzdb security” at the start of your email’s subject line. We prefer communications to be in English. You should receive a response within a week. If not, please follow up @@ -4,9 +4,9 @@ # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, -# go ahead and edit the file (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2018-05-27): # @@ -115,8 +115,9 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia -1:00 - %z # Chad +# Fort-Lamy was renamed to N’Djamena on 1973-04-06. # Zone NAME STDOFF RULES FORMAT [UNTIL] -Zone Africa/Ndjamena 1:00:12 - LMT 1912 Jan 1 # N'Djamena +Zone Africa/Ndjamena 1:00:12 - LMT 1912 Jan 1 # Fort-Lamy 1:00 - WAT 1979 Oct 14 1:00 1:00 WAST 1980 Mar 8 1:00 - WAT diff --git a/antarctica b/antarctica index 2e90a5e09d17..f46ac479cbd4 100644 --- a/antarctica +++ b/antarctica @@ -3,13 +3,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# From Paul Eggert (1999-11-15): -# To keep things manageable, we list only locations occupied year-round; see -# COMNAP - Stations and Bases -# http://www.comnap.aq/comnap/comnap.nsf/P/Stations/ -# and -# Summary of the Peri-Antarctic Islands (1998-07-23) -# http://www.spri.cam.ac.uk/bob/periant.htm +# From Paul Eggert (2025-08-16): +# To keep things manageable, list only locations occupied year-round; see +# Antarctic Facilities Information +# https://www.comnap.aq/antarctic-facilities-information # for information. # Unless otherwise specified, we have no time zone information. @@ -144,6 +141,7 @@ Zone Antarctica/Mawson 0 - -00 1954 Feb 13 # China - year-round bases # Great Wall, King George Island, -6213-05858, since 1985-02-20 # Zhongshan, Larsemann Hills, Prydz Bay, -6922+07623, since 1989-02-26 +# Qinling, Inexpressible I, Terra Nova Bay, -7456+16343, since 2024-02-07 # France - year-round bases (also see "France & Italy") # @@ -4,9 +4,9 @@ # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, -# go ahead and edit the file (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2019-07-11): # diff --git a/australasia b/australasia index 405944536cd3..e52aab109bca 100644 --- a/australasia +++ b/australasia @@ -937,9 +937,9 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila # NOTES # This file is by no means authoritative; if you think you know better, -# go ahead and edit the file (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2018-11-18): # @@ -1988,6 +1988,7 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila # From Paul Eggert (2018-11-19): # The 1921-01-15 introduction of standard time is in Shanks; it is also in # "Standard Time Throughout the World", US National Bureau of Standards (1935), +# https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular406.pdf # page 3, which does not give the UT offset. In response to a comment by # Phake Nick I set the Nauru time of occupation by Japan to # 1942-08-29/1945-09-08 by using dates from: @@ -2055,9 +2056,10 @@ Zone Pacific/Efate 11:13:16 - LMT 1912 Jan 13 # Vila # https://webspace.science.uu.nl/~gent0113/idl/idl_alaska_samoa.htm # Although Shanks & Pottenger says they both switched to UT -11:30 -# in 1911, and to -11 in 1950. many earlier sources give -11 +# in 1911, and to -11 in 1950, many earlier sources give -11 # for American Samoa, e.g., the US National Bureau of Standards # circular "Standard Time Throughout the World", 1932. +# https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular399.pdf # Assume American Samoa switched to -11 in 1911, not 1950, # and that after 1950 they agreed until (western) Samoa skipped a # day in 2011. Assume also that the Samoas follow the US and New @@ -2,10 +2,10 @@ # This file is in the public domain. -# This file is by no means authoritative; if you think you know -# better, go ahead and edit it (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# This file is by no means authoritative; if you think you know better, +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # When proposing changes to this file, please use 'git format-patch' # format, either by attaching the resulting .patch file to your email, diff --git a/calendars b/calendars index f4ed9e434e50..699de85cbffa 100644 --- a/calendars +++ b/calendars @@ -16,30 +16,9 @@ and (in Paris only) 1871-05-06 through 1871-05-23. Russia -From Chris Carrier (1996-12-02): -On 1929-10-01 the Soviet Union instituted an "Eternal Calendar" -with 30-day months plus 5 holidays, with a 5-day week. -On 1931-12-01 it changed to a 6-day week; in 1934 it reverted to the -Gregorian calendar while retaining the 6-day week; on 1940-06-27 it -reverted to the 7-day week. With the 6-day week the usual days -off were the 6th, 12th, 18th, 24th and 30th of the month. -(Source: Evitiar Zerubavel, _The Seven Day Circle_) - - -Mark Brader reported a similar story in "The Book of Calendars", edited -by Frank Parise (1982, Facts on File, ISBN 0-8719-6467-8), page 377. But: - -From: Petteri Sulonen (via Usenet) -Date: 14 Jan 1999 00:00:00 GMT -... - -If your source is correct, how come documents between 1929 and 1940 were -still dated using the conventional, Gregorian calendar? - -I can post a scan of a document dated December 1, 1934, signed by -Yenukidze, the secretary, on behalf of Kalinin, the President of the -Executive Committee of the Supreme Soviet, if you like. - +Soviet Russia adopted the Gregorian calendar on 1918-02-14. +It also used 5- and 6-day work weeks at times, in parallel with the +Gregorian calendar; see <https://en.wikipedia.org/wiki/Soviet_calendar>. Sweden (and Finland) diff --git a/checknow.awk b/checknow.awk index 450490ee3768..8139ad57ecd2 100644 --- a/checknow.awk +++ b/checknow.awk @@ -50,5 +50,10 @@ END { status = 1 } } + if (now_out) { + for (data in zones) { + printf "%s=%s\n", now, zones[data] >>now_out + } + } exit status } @@ -4,9 +4,9 @@ # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, -# go ahead and edit the file (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2017-02-10): # @@ -42,7 +42,7 @@ # <https://www.jstor.org/stable/1774359>. He writes: # "It is requested that corrections and additions to these tables # may be sent to Mr. John Milne, Royal Geographical Society, -# Savile Row, London." Nowadays please email them to tz@iana.org. +# Savile Row, London." Nowadays please see the file CONTRIBUTING. # # Byalokoz EL. New Counting of Time in Russia since July 1, 1919. # This Russian-language source was consulted by Vladimir Karpinsky; see @@ -54,7 +54,7 @@ # Десятая гос. тип., 1919. # http://resolver.gpntb.ru/purl?docushare/dsweb/Get/Resource-2011/Byalokoz__E.L.__Novyy__schet__vremeni__v__techenie__sutok__izd__2(1).pdf # -# Brazil's Divisão Serviço da Hora (DSHO), +# Brazil's Divisão de Serviços da Hora (DISHO) # History of Summer Time # <http://pcdsh01.on.br/HISTHV.htm> # (1998-09-21, in Portuguese) @@ -914,7 +914,7 @@ Rule Belgium 1922 1927 - Oct Sat>=1 23:00s 0 - Rule Belgium 1923 only - Apr 21 23:00s 1:00 S Rule Belgium 1924 only - Mar 29 23:00s 1:00 S Rule Belgium 1925 only - Apr 4 23:00s 1:00 S -# DSH writes that a royal decree of 1926-02-22 specified the Sun following 3rd +# DISHO writes that a royal decree of 1926-02-22 specified the Sun following 3rd # Sat in Apr (except if it's Easter, in which case it's one Sunday earlier), # to Sun following 1st Sat in Oct, and that a royal decree of 1928-09-15 # changed the transition times to 02:00 GMT. @@ -1310,6 +1310,13 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 # France # Monaco +# From Robert H. van Gent (2025-07-21): +# The most recent issue of the Annuaire [par le Bureau des Longitudes] +# on Gallica (2021) ... lists information for France +# https://gallica.bnf.fr/ark:/12148/bpt6k9127672b/f52.item +# From Paul Eggert (2025-07-21): +# Go with the 2020 Annuaire (published 2021) except as noted below. + # From Ciro Discepolo (2000-12-20): # # Henri Le Corre, Régimes horaires pour le monde entier, Éditions @@ -1371,7 +1378,6 @@ Zone Europe/Helsinki 1:39:49 - LMT 1878 May 31 # problems in Algiers, Monaco and Tunis. # -# Shank & Pottenger seem to use '24:00' ambiguously; resolve it with Whitman. # Rule NAME FROM TO - IN ON AT SAVE LETTER/S Rule France 1916 only - Jun 14 23:00s 1:00 S Rule France 1916 1919 - Oct Sun>=1 23:00s 0 - @@ -1383,9 +1389,25 @@ Rule France 1920 only - Oct 23 23:00s 0 - Rule France 1921 only - Mar 14 23:00s 1:00 S Rule France 1921 only - Oct 25 23:00s 0 - Rule France 1922 only - Mar 25 23:00s 1:00 S -# DSH writes that a law of 1923-05-24 specified 3rd Sat in Apr at 23:00 to 1st -# Sat in Oct at 24:00; and that in 1930, because of Easter, the transitions -# were Apr 12 and Oct 5. Go with Shanks & Pottenger. +# From Robert H. van Gent (2025-07-22): +# There is a curious history behind the erroneous date for the start of +# daylight saving in France in 1923 as listed in the current issues of +# the Annuaire du Bureau des Longitudes. [See:] +# https://lists.iana.org/hyperkitty/list/tz@iana.org/message/MYQEJMSXO2AIEZ3UIXZKMTTAIPY7KNT2/ +# From Brian Inglis (2025-07-23): +# Légifrance JORF No. 0073 du 15 mars 1922 +# https://www.legifrance.gouv.fr/jorf/jo/id/JORFCONT000000008324 +# Légifrance JORF No. 0139 du 25 mai 1923 +# https://www.legifrance.gouv.fr/jorf/jo/id/JORFCONT000000008416 +# From Paul Eggert (2025-07-23): +# The latter specifies March's last Saturday at 23:00 to October's first +# Saturday at 24:00, except that if neighboring allies agree the dates +# can be moved to April's third Saturday and September's third Saturday. +# Apparently spring 1923 was tricky. DISHO writes that in 1930, +# because of Easter, the transitions were Apr 12 and Oct 5. +# Use the 2020 Annuaire dates, except for spring 1923 where +# Shanks & Pottenger's May 26 matches the dates given in the 1924 and +# 1961-2001 issues of the Annuaire. Rule France 1922 1938 - Oct Sat>=1 23:00s 0 - Rule France 1923 only - May 26 23:00s 1:00 S Rule France 1924 only - Mar 29 23:00s 1:00 S @@ -2096,12 +2118,10 @@ Zone Europe/Warsaw 1:24:00 - LMT 1880 # all clocks therefore having to be advanced or set back correspondingly ... # Rule NAME FROM TO - IN ON AT SAVE LETTER/S -# From Tim Parenti (2024-07-01), per Paul Eggert (1999-01-30): -# DSH writes in their history that Decreto 1469 of 1915-03-30 established -# summer time and that, "despite" this, the change to the clocks was not done -# every year, depending on what Spain did, because of railroad schedules. -# In fact, that decree had nothing to do with DST; rather, it regulated the -# sending of time signals. But we do see linkage to Spain in the 1920s below. +# From Tim Parenti (2024-07-01): +# Decreto 1469 of 1915-03-30 ... had nothing to do with DST; +# rather it regulated the sending of time signals. +# But we do see linkage to Spain in the 1920s below. # https://dre.pt/dr/detalhe/decreto/1469-1915-285721 # https://dre.pt/application/conteudo/285721 # diff --git a/iso3166.tab b/iso3166.tab index 402c015ec6b1..4ae35234b972 100644 --- a/iso3166.tab +++ b/iso3166.tab @@ -3,22 +3,22 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. # -# From Paul Eggert (2023-09-06): +# From Paul Eggert (2025-07-01): # This file contains a table of two-letter country codes. Columns are -# separated by a single tab. Lines beginning with '#' are comments. +# separated by a single tab. Lines beginning with ‘#’ are comments. # All text uses UTF-8 encoding. The columns of the table are as follows: # # 1. ISO 3166-1 alpha-2 country code, current as of -# ISO/TC 46 N1108 (2023-04-05). See: ISO/TC 46 Documents +# ISO/TC 46 N1127 (2024-02-29). See: ISO/TC 46 Documents # https://www.iso.org/committee/48750.html?view=documents # 2. The usual English name for the coded region. This sometimes # departs from ISO-listed names, sometimes so that sorted subsets -# of names are useful (e.g., "Samoa (American)" and "Samoa -# (western)" rather than "American Samoa" and "Samoa"), +# of names are useful (e.g., “Samoa (American)” and “Samoa +# (western)” rather than “American Samoa” and “Samoa”), # sometimes to avoid confusion among non-experts (e.g., -# "Czech Republic" and "Turkey" rather than "Czechia" and "Türkiye"), -# and sometimes to omit needless detail or churn (e.g., "Netherlands" -# rather than "Netherlands (the)" or "Netherlands (Kingdom of the)"). +# “Czech Republic” and “Turkey” rather than “Czechia” and “Türkiye”), +# and sometimes to omit needless detail or churn (e.g., “Netherlands” +# rather than “Netherlands (the)” or “Netherlands (Kingdom of the)”). # # The table is sorted by country code. # @@ -71,7 +71,7 @@ CD Congo (Dem. Rep.) CF Central African Rep. CG Congo (Rep.) CH Switzerland -CI Côte d'Ivoire +CI Côte d’Ivoire CK Cook Islands CL Chile CM Cameroon diff --git a/leap-seconds.list b/leap-seconds.list index 6f861c888d75..649a22c6278f 100644 --- a/leap-seconds.list +++ b/leap-seconds.list @@ -60,15 +60,15 @@ # # The following line shows the last update of this file in NTP timestamp: # -#$ 3945196800 +#$ 3960835200 # # 2) Expiration date of the file given on a semi-annual basis: last June or last December # -# File expires on 28 December 2025 +# File expires on 28 June 2026 # # Expire date in NTP timestamp: # -#@ 3975868800 +#@ 3991593600 # # # LIST OF LEAP SECONDS @@ -117,4 +117,4 @@ # please see the readme file in the 'source' directory : # https://hpiers.obspm.fr/iers/bul/bulc/ntp/sources/README # -#h 848434d5 570f7ea8 d79ba227 a00fc821 f608e2d4 +#h 49db2447 571e5e1b 2f002a53 9c8da8e4 39b8e49e diff --git a/leapseconds b/leapseconds index 76f771427f25..2a42c83efe16 100644 --- a/leapseconds +++ b/leapseconds @@ -5,7 +5,8 @@ # This file is generated automatically from the data in the public-domain # NIST/IERS format leap-seconds.list file, which can be copied from # <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list> -# or, in a variant with different comments, from +# or via a less-secure protocol and with different comments and +# less volatile last-modified and expiration timestamps, from # <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>. # For more about leap-seconds.list, please see # The NTP Timescale and Leap Seconds @@ -69,11 +70,17 @@ Leap 2016 Dec 31 23:59:60 + S # Any additional leap seconds will come after this. # This Expires line is commented out for now, # so that pre-2020a zic implementations do not reject this file. -#Expires 2025 Dec 28 00:00:00 +#Expires 2026 Jun 28 00:00:00 -# POSIX timestamps for the data in this file: -#updated 1736208000 (2025-01-07 00:00:00 UTC) -#expires 1766880000 (2025-12-28 00:00:00 UTC) +# Here are POSIX timestamps for the data in this file. +# "#updated" gives the last time the leap seconds data changed +# or, if this file was derived from the IERS leap-seconds.list, +# the last time that file changed in any way. +# "#expires" gives the first time this file might be wrong; +# if this file was derived from the IERS leap-seconds.list, +# this is typically a bit less than one year after "updated". +#updated 1751846400 (2025-07-07 00:00:00 UTC) +#expires 1782604800 (2026-06-28 00:00:00 UTC) # Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) -# File expires on 28 December 2025 +# File expires on 28 June 2026 diff --git a/leapseconds.awk b/leapseconds.awk index 15e85012bf95..b9986164f737 100644 --- a/leapseconds.awk +++ b/leapseconds.awk @@ -23,7 +23,8 @@ BEGIN { print "# This file is generated automatically from the data in the public-domain" print "# NIST/IERS format leap-seconds.list file, which can be copied from" print "# <https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list>" - print "# or, in a variant with different comments, from" + print "# or via a less-secure protocol and with different comments and" + print "# less volatile last-modified and expiration timestamps, from" print "# <ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list>." print "# For more about leap-seconds.list, please see" print "# The NTP Timescale and Leap Seconds" @@ -125,7 +126,13 @@ END { epoch_minus_NTP = ((1970 - 1900) * 365 + 17) * 24 * 60 * 60 print "" - print "# POSIX timestamps for the data in this file:" + print "# Here are POSIX timestamps for the data in this file." + print "# \"#updated\" gives the last time the leap seconds data changed" + print "# or, if this file was derived from the IERS leap-seconds.list," + print "# the last time that file changed in any way." + print "# \"#expires\" gives the first time this file might be wrong;" + print "# if this file was derived from the IERS leap-seconds.list," + print "# this is typically a bit less than one year after \"updated\"." if (updated) { sstamp_to_ymdhMs(updated, ss_NTP) printf "#updated %d (%.4d-%.2d-%.2d %.2d:%.2d:%.2d UTC)\n", \ diff --git a/northamerica b/northamerica index 20b47b481ddd..16b79af29b55 100644 --- a/northamerica +++ b/northamerica @@ -6,9 +6,9 @@ # also includes Central America and the Caribbean # This file is by no means authoritative; if you think you know better, -# go ahead and edit the file (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # From Paul Eggert (1999-03-22): # A reliable and entertaining source about time zones is @@ -1218,6 +1218,16 @@ Zone America/Menominee -5:50:27 - LMT 1885 Sep 18 12:00 # _Los Angeles Times_ (1998-11-10), A1, A10; it cites # Jimmy Skaggs, _The Great Guano Rush_ (1994). +# From Rob van Gent (2025-07-23): +# Another useful source for historical time zone information appears to be +# a series of circulars with the title "Standard Time Throughout the World" +# issued between 1925 and 1950 by the U.S. Bureau of Standards. +# I found the following issues online: +# https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular280.pdf (1925) +# https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular399.pdf (1932) +# https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular406.pdf (1935) +# https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular496.pdf (1950) + ################################################################################ @@ -2434,12 +2444,35 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 # on the same dates or with a difference of one day. # So it may be easier to implement these changes as DST with rule CA # during this whole period. -# -# From Paul Eggert (2024-08-18): -# For now, maintain the slightly-different history for Baja California, + +# From Alois Treindl (2025-07-29): +# I did a quick newspaper archive research on https://hndm.iib.unam.mx/ +# and found that Periódico Oficial del Estado de Baja California Norte +# (1973-04-20) states clearly that DST was observed from last Sunday +# in April to last Sunday in October.... I have a few more data from the +# official bulletin for DST begin or end in Baja California 1964 1967 1969 +# 1972 1973 (already sent) 1974 1975 1976 I do not know whether it is safe to +# assume that it also applied in the years where I did not yet find proof. +# The 1974 end of DST contains a reference to an Acuerdo of 1973-dec-20 which +# I could not find.... One might assume that Baja California, which followed +# US-CA in all these other yours, did the same. +# +# From Paul Eggert (2025-08-04): +# Assume that Tijuana agreed with San Diego from 1953 through 1996, +# as this agrees with Alois Treindl's data and with Shanks. +# For now, keep the slightly-different 1948/1952 history for Baja California, # as we have no information on whether 1948/1952 clocks in Tijuana followed # the decrees or followed San Diego. +# From Mark Schapiro, writing in The Nation (2002-10-28): +# https://www.thenation.com/article/archive/sowing-disaster/ +# When Mexican clocks were turned back for daylight saving time in the spring, +# the Zapotecs refused to make the adjustment, insisting that they live in +# "God's time," not in what they derisively call "Fox time," referring to +# President Vicente Fox in far-off Mexico City. +# From Paul Eggert (2025-08-04): +# Unfortunately we have no data to track this informal practice. + # From Alan Perry (1996-02-15): # A guy from our Mexico subsidiary finally found the Presidential Decree # outlining the timezone changes in Mexico. @@ -2705,7 +2738,7 @@ Zone America/Mexico_City -6:36:36 - LMT 1922 Jan 1 7:00u # Chihuahua (near US border - western side) # This includes the municipios of Janos, Ascensión, Juárez, Guadalupe, and # Práxedis G Guerrero. -# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf +# https://gaceta.diputados.gob.mx/PDF/65/2022/nov/20221124-VII.pdf Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 @@ -2720,7 +2753,7 @@ Zone America/Ciudad_Juarez -7:05:56 - LMT 1922 Jan 1 7:00u # Chihuahua (near US border - eastern side) # This includes the municipios of Coyame del Sotol, Ojinaga, and Manuel # Benavides. -# http://gaceta.diputados.gob.mx/PDF/65/2a022/nov/20221124-VII.pdf +# https://gaceta.diputados.gob.mx/PDF/65/2022/nov/20221124-VII.pdf Zone America/Ojinaga -6:57:40 - LMT 1922 Jan 1 7:00u -7:00 - MST 1927 Jun 10 -6:00 - CST 1930 Nov 15 @@ -2817,9 +2850,7 @@ Zone America/Tijuana -7:48:04 - LMT 1922 Jan 1 7:00u -8:00 1:00 PDT 1951 Sep 30 2:00 -8:00 - PST 1952 Apr 27 2:00 -8:00 1:00 PDT 1952 Sep 28 2:00 - -8:00 - PST 1954 - -8:00 CA P%sT 1961 - -8:00 - PST 1976 + -8:00 CA P%sT 1967 -8:00 US P%sT 1996 -8:00 Mexico P%sT 2001 -8:00 US P%sT 2002 Feb 20 diff --git a/southamerica b/southamerica index 06fee598baf4..bcd4abdfa42c 100644 --- a/southamerica +++ b/southamerica @@ -4,9 +4,9 @@ # 2009-05-17 by Arthur David Olson. # This file is by no means authoritative; if you think you know better, -# go ahead and edit the file (and please send any changes to -# tz@iana.org for general use in the future). For more, please see -# the file CONTRIBUTING in the tz distribution. +# go ahead and edit the file, and please send any changes to +# the public mailing list tz@iana.org for general use in the future. +# For more, please see the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2016-12-05): # diff --git a/theory.html b/theory.html index 352a3d87078f..6e52a929d335 100644 --- a/theory.html +++ b/theory.html @@ -89,24 +89,25 @@ The <code><abbr>tz</abbr></code> code is upwards compatible with <a href="https://en.wikipedia.org/wiki/POSIX">POSIX</a>, an international standard for <a href="https://en.wikipedia.org/wiki/Unix">UNIX</a>-like systems. -As of this writing, the current edition of POSIX is POSIX.1-2024, -which has been published but not yet in HTML form. -Unlike its predecessor POSIX.1-2017 (<a -href="https://pubs.opengroup.org/onlinepubs/9699919799/"> The Open -Group Base Specifications Issue 7</a>, IEEE Std 1003.1-2017, 2018 -Edition), POSIX.1-2024 requires support for the +As of this writing, the current edition of POSIX is +<a href="https://pubs.opengroup.org/onlinepubs/9799919799/">POSIX.1-2024</a> +(The Open Group Base Specifications Issue 8, IEEE Std 1003.1-2024). +Unlike its predecessors +<a href="https://archive.org/details/POSIX.1-1988">POSIX.1-1988</a> through +<a href="https://pubs.opengroup.org/onlinepubs/9699919799/">POSIX.1-2017</a>, +POSIX.1-2024 requires support for the <code><abbr>tz</abbr></code> database, which has a model for describing civil time that is more complex than the -standard and daylight saving times required by POSIX.1-2017. +standard and daylight saving times required by earlier POSIX editions. A <code><abbr>tz</abbr></code> timezone corresponds to a ruleset that can have more than two changes per year, these changes need not merely flip back and forth between two alternatives, and the rules themselves can change at times. Whether and when a timezone changes its clock, -and even the timezone's notional base offset from <abbr>UTC</abbr>, +and even the timezone’s notional base offset from <abbr>UTC</abbr>, are variable. -It does not always make sense to talk about a timezone's -"base offset", which is not necessarily a single number. +It does not always make sense to talk about a timezone’s +“base offset”, which is not necessarily a single number. </p> </section> @@ -118,16 +119,16 @@ Each timezone has a name that uniquely identifies the timezone. Inexperienced users are not expected to select these names unaided. Distributors should provide documentation and/or a simple selection interface that explains each name via a map or via descriptive text like -"Czech Republic" instead of the timezone name "<code>Europe/Prague</code>". +“Czech Republic” instead of the timezone name “<code>Europe/Prague</code>”. If geolocation information is available, a selection interface can locate the user on a timezone map or prioritize names that are geographically close. For an example selection interface, see the <code>tzselect</code> program in the <code><abbr>tz</abbr></code> code. -Unicode's <a href="https://cldr.unicode.org">Common Locale Data +Unicode’s <a href="https://cldr.unicode.org">Common Locale Data Repository (<abbr>CLDR</abbr>)</a> contains data that may be useful for other selection interfaces; it maps timezone names like <code>Europe/Prague</code> to -locale-dependent strings like "Prague", "Praha", "Прага", and "布拉格". +locale-dependent strings like “Prague”, “Praha”, “Прага”, and “布拉格”. </p> <p> @@ -142,13 +143,13 @@ among the following goals: civil time. </li> <li> - Indicate to experts where the timezone's clocks typically are. + Indicate to experts where the timezone’s clocks typically are. </li> <li> Be robust in the presence of political changes. For example, names are typically not tied to countries, to avoid incompatibilities when countries change their name (e.g., - Swaziland→Eswatini) or when locations change countries (e.g., Hong + Swaziland→Eswatini) or when locations change countries (e.g., Hong Kong from UK colony to China). There is no requirement that every country or national capital must have a timezone name. @@ -166,11 +167,11 @@ Names normally have the format <var>AREA</var><code>/</code><var>LOCATION</var>, where <var>AREA</var> is a continent or ocean, and <var>LOCATION</var> is a specific location within the area. -North and South America share the same area, '<code>America</code>'. -Typical names are '<code>Africa/Cairo</code>', -'<code>America/New_York</code>', and '<code>Pacific/Honolulu</code>'. +North and South America share the same area, <code>America</code>. +Typical names are <code>Africa/Cairo</code>, +<code>America/New_York</code>, and <code>Pacific/Honolulu</code>. Some names are further qualified to help avoid confusion; for example, -'<code>America/Indiana/Petersburg</code>' distinguishes Petersburg, +<code>America/Indiana/Petersburg</code> distinguishes Petersburg, Indiana from other Petersburgs in America. </p> @@ -183,25 +184,25 @@ in decreasing order of importance: <ul> <li> Use only valid POSIX file name components (i.e., the parts of - names other than '<code>/</code>'). - Do not use the file name components '<code>.</code>' and - '<code>..</code>'. + names other than "<code>/</code>"). + Do not use the file name components "<code>.</code>" and + "<code>..</code>". Within a file name component, use only <a href="https://en.wikipedia.org/wiki/ASCII">ASCII</a> letters, - '<code>.</code>', '<code>-</code>' and '<code>_</code>'. + "<code>.</code>", "<code>-</code>" and "<code>_</code>". Do not use digits, as that might create an ambiguity with <a - href="https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03">POSIX's proleptic - <code>TZ</code> strings</a>. + href="https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap08.html#tag_08_03">POSIX’s + proleptic <code>TZ</code> strings</a>. A file name component must not exceed 14 characters or start with - '<code>-</code>'. + "<code>-</code>". E.g., prefer <code>America/Noronha</code> to <code>America/Fernando_de_Noronha</code>. Exceptions: see the discussion of legacy names below. </li> <li> - A name must not be empty, or contain '<code>//</code>', or - start or end with '<code>/</code>'. - Also, a name must not be '<code>Etc/Unknown</code>', as + A name must not be empty, or contain "<code>//</code>", or + start or end with "<code>/</code>". + Also, a name must not be "<code>Etc/Unknown</code>", as <abbr>CLDR</abbr> uses that string for an unknown or invalid timezone. </li> <li> @@ -213,7 +214,7 @@ in decreasing order of importance: <li> If one name <var>A</var> is an initial prefix of another name <var>AB</var> (ignoring case), then <var>B</var> must not - start with '<code>/</code>', as a regular file cannot have the + start with "<code>/</code>", as a regular file cannot have the same name as a directory in POSIX. For example, <code>America/New_York</code> precludes <code>America/New_York/Bronx</code>. @@ -280,8 +281,8 @@ in decreasing order of importance: <code>Atlantic/Canaries</code>. </li> <li> - Omit common suffixes like '<code>_Islands</code>' and - '<code>_City</code>', unless that would lead to ambiguity. + Omit common suffixes like "<code>_Islands</code>" and + "<code>_City</code>", unless that would lead to ambiguity. E.g., prefer <code>America/Cayman</code> to <code>America/Cayman_Islands</code> and <code>America/Guatemala</code> to @@ -292,10 +293,10 @@ in decreasing order of importance: country of Mexico has several time zones</a>. </li> <li> - Use '<code>_</code>' to represent a space. + Use "<code>_</code>" to represent a space. </li> <li> - Omit '<code>.</code>' from abbreviations in names. + Omit "<code>.</code>" from abbreviations in names. E.g., prefer <code>Atlantic/St_Helena</code> to <code>Atlantic/St._Helena</code>. </li> @@ -303,15 +304,15 @@ in decreasing order of importance: Do not change established names if they only marginally violate the above guidelines. For example, do not change the existing name <code>Europe/Rome</code> to - <code>Europe/Milan</code> merely because Milan's population has grown - to be somewhat greater than Rome's. + <code>Europe/Milan</code> merely because Milan’s population has grown + to be somewhat greater than Rome’s. </li> <li> If a name is changed, put its old spelling in the - '<code>backward</code>' file as a link to the new spelling. + "<code>backward</code>" file as a link to the new spelling. This means old spellings will continue to work. Ordinarily a name change should occur only in the rare case when - a location's consensus English-language spelling changes; for example, + a location’s consensus English-language spelling changes; for example, in 2008 <code>Asia/Calcutta</code> was renamed to <code>Asia/Kolkata</code> due to long-time widespread use of the new city name instead of the old. </li> @@ -327,11 +328,11 @@ have included the following: <ul> <li> Older versions of this package used a different naming scheme. -See the file '<code>backward</code>' for most of these older names -(e.g., '<code>US/Eastern</code>' instead of '<code>America/New_York</code>'). +See the file "<code>backward</code>" for most of these older names +(e.g., <code>US/Eastern</code> instead of <code>America/New_York</code>). The other old-fashioned names still supported are -'<code>WET</code>', '<code>CET</code>', '<code>MET</code>', and -'<code>EET</code>' (see the file '<code>europe</code>'). +<code>WET</code>, <code>CET</code>, <code>MET</code>, and +<code>EET</code> (see the file "<code>europe</code>"). </li> <li> @@ -339,13 +340,13 @@ Older versions of this package defined legacy names that are incompatible with the first guideline of location names, but which are still supported. These legacy names are mostly defined in the file -'<code>etcetera</code>'. -Also, the file '<code>backward</code>' defines the legacy names -'<code>Etc/GMT0</code>', '<code>Etc/GMT-0</code>', '<code>Etc/GMT+0</code>', -'<code>GMT0</code>', '<code>GMT-0</code>' and '<code>GMT+0</code>', -and the file '<code>northamerica</code>' defines the legacy names -'<code>EST5EDT</code>', '<code>CST6CDT</code>', -'<code>MST7MDT</code>', and '<code>PST8PDT</code>'. +"<code>etcetera</code>". +Also, the file "<code>backward</code>" defines the legacy names +<code>Etc/GMT0</code>, <code>Etc/GMT-0</code>, <code>Etc/GMT+0</code>, +<code>GMT0</code>, <code>GMT-0</code> and <code>GMT+0</code>, +and the file "<code>northamerica</code>" defines the legacy names +<code>EST5EDT</code>, <code>CST6CDT</code>, +<code>MST7MDT</code>, and <code>PST8PDT</code>. </li> <li> @@ -365,11 +366,11 @@ The file <code>zone1970.tab</code> lists geographical locations used to name timezones. It is intended to be an exhaustive list of names for geographic regions as described above; this is a subset of the timezones in the data. -Although a <code>zone1970.tab</code> location's +Although a <code>zone1970.tab</code> location’s <a href="https://en.wikipedia.org/wiki/Longitude">longitude</a> corresponds to its <a href="https://en.wikipedia.org/wiki/Local_mean_time">local mean -time (<abbr>LMT</abbr>)</a> offset with one hour for every 15° +time (<abbr>LMT</abbr>)</a> offset with one hour for every 15° east longitude, this relationship is not exact. The backward-compatibility file <code>zone.tab</code> is similar but conforms to the older-version guidelines related to <abbr>ISO</abbr> 3166-1; @@ -395,7 +396,7 @@ on platforms that do not support proleptic <code>TZ</code> strings like <code><+08>-8</code>; no other source file other than <code>backward</code> contains links to its zones. -One of <code>etcetera</code>'s names is <code>Etc/UTC</code>, +One of <code>etcetera</code>’s names is <code>Etc/UTC</code>, used by functions like <code>gmtime</code> to obtain leap second information on platforms that support leap seconds. Another <code>etcetera</code> name, <code>GMT</code>, @@ -407,7 +408,7 @@ is used by older code releases. <h2 id="abbreviations">Time zone abbreviations</h2> <p> When this package is installed, it generates time zone abbreviations -like '<code>EST</code>' to be compatible with human tradition and POSIX. +like <code>EST</code> to be compatible with human tradition and POSIX. Here are the general guidelines used for choosing time zone abbreviations, in decreasing order of importance: </p> @@ -415,25 +416,24 @@ in decreasing order of importance: <ul> <li> Use three to six characters that are ASCII alphanumerics or - '<code>+</code>' or '<code>-</code>'. + "<code>+</code>" or "<code>-</code>". Previous editions of this database also used characters like - space and '<code>?</code>', but these characters have a + space and "<code>?</code>", but these characters have a special meaning to the <a href="https://en.wikipedia.org/wiki/Unix_shell">UNIX shell</a> and cause commands like - '<code><a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#set">set</a> - `<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/date.html">date</a>`</code>' + "<code><a href="https://pubs.opengroup.org/onlinepubs/9799919799/utilities/V3_chap02.html#set">set</a> + `<a href="https://pubs.opengroup.org/onlinepubs/9799919799/utilities/date.html">date</a>`</code>" to have unexpected effects. Previous editions of this guideline required upper-case letters, but the Congressman who introduced <a href="https://en.wikipedia.org/wiki/Chamorro_Time_Zone">Chamorro - Standard Time</a> preferred "ChST", so lower-case letters are now - allowed. - Also, POSIX from 2001 on relaxed the rule to allow '<code>-</code>', - '<code>+</code>', and alphanumeric characters from the portable + Standard Time</a> preferred “ChST”, so lower-case letters are now allowed. + Also, POSIX from 2001 on relaxed the rule to allow "<code>-</code>", + "<code>+</code>", and alphanumeric characters from the portable character set in the current locale. - In practice ASCII alphanumerics and '<code>+</code>' and - '<code>-</code>' are safe in all locales. + In practice ASCII alphanumerics and "<code>+</code>" and + "<code>-</code>" are safe in all locales. <p> In other words, in the C locale the POSIX extended regular @@ -445,10 +445,10 @@ in decreasing order of importance: </li> <li> Use abbreviations that are in common use among English-speakers, - e.g., 'EST' for Eastern Standard Time in North America. + e.g., “EST” for Eastern Standard Time in North America. We assume that applications translate them to other languages as part of the normal localization process; for example, - a French application might translate 'EST' to 'HNE'. + a French application might translate “EST” to “HNE”. <p> <small>These abbreviations (for standard/daylight/etc. time) are: @@ -483,7 +483,7 @@ in decreasing order of importance: NST/NDT/NWT/NPT/NDDT Newfoundland, NST/NDT/NWT/NPT Nome, NZMT/NZST New Zealand through 1945, - NZST/NZDT New Zealand 1946–present, + NZST/NZDT New Zealand 1946–present, PKT/PKST Pakistan, PST/PDT/PWT/PPT Pacific, PST/PDT Philippine, @@ -500,12 +500,12 @@ in decreasing order of importance: </li> <li> <p> - For times taken from a city's longitude, use the + For times taken from a city’s longitude, use the traditional <var>x</var>MT notation. - The only abbreviation like this in current use is '<abbr>GMT</abbr>'. + The only abbreviation like this in current use is <abbr>GMT</abbr>. The others are for timestamps before 1960, except that Monrovia Mean Time persisted until 1972. - Typically, numeric abbreviations (e.g., '<code>-</code>004430' for + Typically, numeric abbreviations (e.g., <code>-</code>004430 for MMT) would cause trouble here, as the numeric strings would exceed the POSIX length limit. </p> @@ -546,39 +546,39 @@ in decreasing order of importance: <small>A few abbreviations also follow the pattern that <abbr>GMT</abbr>/<abbr>BST</abbr> established for time in the UK. They are: - BMT/BST for Bermuda 1890–1930, + BMT/BST for Bermuda 1890–1930, CMT/BST for Calamarca Mean Time and Bolivian Summer Time - 1890–1932, + 1890–1932, DMT/IST for Dublin/Dunsink Mean Time and Irish Summer Time - 1880–1916, - MMT/MST/MDST for Moscow 1880–1919, and - RMT/LST for Riga Mean Time and Latvian Summer time 1880–1926. + 1880–1916, + MMT/MST/MDST for Moscow 1880–1919, and + RMT/LST for Riga Mean Time and Latvian Summer time 1880–1926. </small> </p> </li> <li> - Use '<abbr>LMT</abbr>' for local mean time of locations before the - introduction of standard time; see "<a href="#scope">Scope of the - <code><abbr>tz</abbr></code> database</a>". + Use “<abbr>LMT</abbr>” for local mean time of locations before the + introduction of standard time; see “<a href="#scope">Scope of the + <code><abbr>tz</abbr></code> database</a>”. </li> <li> If there is no common English abbreviation, use numeric offsets like <code>-</code>05 and <code>+</code>0530 that are generated - by <code>zic</code>'s <code>%z</code> notation. + by <code>zic</code>’s <code>%z</code> notation. </li> <li> Use current abbreviations for older timestamps to avoid confusion. For example, in 1910 a common English abbreviation for time - in central Europe was 'MEZ' (short for both "Middle European - Zone" and for "Mitteleuropäische Zeit" in German). - Nowadays 'CET' ("Central European Time") is more common in - English, and the database uses 'CET' even for circa-1910 + in central Europe was “MEZ” (short for both “Middle European + Zone” and for “Mitteleuropäische Zeit” in German). + Nowadays “CET” (“Central European Time”) is more common in + English, and the database uses “CET” even for circa-1910 timestamps as this is less confusing for modern users and avoids - the need for determining when 'CET' supplanted 'MEZ' in common + the need for determining when “CET” supplanted “MEZ” in common usage. </li> <li> - Use a consistent style in a timezone's history. + Use a consistent style in a timezone’s history. For example, if a history tends to use numeric abbreviations and a particular entry could go either way, use a numeric abbreviation. @@ -586,13 +586,13 @@ in decreasing order of importance: <li> Use <a href="https://en.wikipedia.org/wiki/Universal_Time">Universal Time</a> - (<abbr>UT</abbr>) (with time zone abbreviation '<code>-</code>00') for + (<abbr>UT</abbr>) (with time zone abbreviation <code>-</code>00) for locations while uninhabited. - The leading '<code>-</code>' is a flag that the <abbr>UT</abbr> offset is in + The leading "<code>-</code>" is a flag that the <abbr>UT</abbr> offset is in some sense undefined; this notation is derived from <a href="https://www.rfc-editor.org/rfc/rfc3339">Internet <abbr title="Request For Comments">RFC</abbr> 3339</a>. - (The abbreviation 'Z' that + (The abbreviation Z that <a href="https://www.rfc-editor.org/rfc/rfc9557">Internet <abbr>RFC</abbr> 9557</a> uses for this concept would violate the POSIX requirement @@ -602,11 +602,11 @@ in decreasing order of importance: <p> Application writers should note that these abbreviations are ambiguous -in practice: e.g., 'CST' means one thing in China and something else -in North America, and 'IST' can refer to time in India, Ireland or +in practice: e.g., CST means one thing in China and something else +in North America, and IST can refer to time in India, Ireland or Israel. To avoid ambiguity, use numeric <abbr>UT</abbr> offsets like -'<code>-</code>0600' instead of time zone abbreviations like 'CST'. +<code>-</code>0600 instead of time zone abbreviations like CST. </p> </section> @@ -617,7 +617,7 @@ The <code><abbr>tz</abbr></code> database is not authoritative, and it surely has errors. Corrections are welcome and encouraged; see the file <code>CONTRIBUTING</code>. Users requiring authoritative data should consult national standards -bodies and the references cited in the database's comments. +bodies and the references cited in the database’s comments. </p> <p> @@ -639,7 +639,7 @@ Errors in the <code><abbr>tz</abbr></code> database arise from many sources: clocks actually behaved; the vast majority of the necessary information was lost or never recorded. Thousands more timezones would be needed if - the <code><abbr>tz</abbr></code> database's scope were extended to + the <code><abbr>tz</abbr></code> database’s scope were extended to cover even just the known or guessed history of standard time; for example, the current single entry for France would need to split into dozens of entries, perhaps hundreds. @@ -649,11 +649,11 @@ Errors in the <code><abbr>tz</abbr></code> database arise from many sources: In her 2015 book <cite><a href="https://www.hup.harvard.edu/catalog.php?isbn=9780674286146">The - Global Transformation of Time, 1870–1950</a></cite>, + Global Transformation of Time, 1870–1950</a></cite>, Vanessa Ogle writes - "Outside of Europe and North America there was no system of time + “Outside of Europe and North America there was no system of time zones at all, often not even a stable landscape of mean times, - prior to the middle decades of the twentieth century". + prior to the middle decades of the twentieth century”. See: Timothy Shenk, <a href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanessa-ogle">Booked: A Global History of Time</a>. <cite>Dissent</cite> 2015-12-17. @@ -671,8 +671,8 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes For the UK the <code><abbr>tz</abbr></code> database relies on years of first-class work done by Joseph Myers and others; see - "<a href="https://www.polyomino.org.uk/british-time/">History of - legal time in Britain</a>". + “<a href="https://www.polyomino.org.uk/british-time/">History of + legal time in Britain</a>”. Other countries are not done nearly as well. </li> <li> @@ -697,13 +697,13 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes entries are often accurate for only a small subset of that region. For example, <code>Europe/London</code> stands for the United Kingdom, but its pre-1847 times are valid only for locations that - have London's exact meridian, and its 1847 transition + have London’s exact meridian, and its 1847 transition to <abbr>GMT</abbr> is known to be valid only for the L&NW and the Caledonian railways. </li> <li> The <code><abbr>tz</abbr></code> database does not record the - earliest time for which a timezone's + earliest time for which a timezone’s data entries are thereafter valid for every location in the region. For example, <code>Europe/London</code> is valid for all locations in its region after <abbr>GMT</abbr> was made the standard time, @@ -714,7 +714,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes </li> <li> The <code><abbr>tz</abbr></code> database does not record a - region's boundaries, and in many cases the boundaries are not known. + region’s boundaries, and in many cases the boundaries are not known. For example, the timezone <code>America/Kentucky/Louisville</code> represents a region around the city of Louisville, the boundaries of which are @@ -747,7 +747,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes than what the <code><abbr>tz</abbr></code> code can handle. For example, from 1880 to 1916 clocks in Ireland observed Dublin Mean Time (estimated to be <abbr>UT</abbr> - −00:25:21.1); although the <code><abbr>tz</abbr></code> + −00:25:21.1); although the <code><abbr>tz</abbr></code> source data can represent the .1 second, TZif files and the code cannot. In practice these old specifications were rarely if ever implemented to subsecond precision. @@ -787,7 +787,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes non-hour-based system at night. And even today, some local practices diverge from the Gregorian calendar with 24-hour days. These divergences range from - relatively minor, such as Japanese bars giving times like "24:30" for the + relatively minor, such as Japanese bars giving times like 24:30 for the wee hours of the morning, to more-significant differences such as <a href="https://theworld.org/stories/2015-01-30/if-you-have-meeting-ethiopia-you-better-double-check-time">the east African practice of starting the day at dawn</a>, renumbering @@ -825,16 +825,16 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes <li> Civil time was not based on atomic time before 1972, and we do not know the history of - <a href="https://en.wikipedia.org/wiki/Earth's_rotation">earth's + <a href="https://en.wikipedia.org/wiki/Earth's_rotation">earth’s rotation</a> accurately enough to map <a href="https://en.wikipedia.org/wiki/International_System_of_Units"><abbr title="International System of Units">SI</abbr></a> seconds to historical <a href="https://en.wikipedia.org/wiki/Solar_time">solar time</a> to more than about one-hour accuracy. - See: Stephenson FR, Morrison LV, Hohenkerk CY. - <a href="https://dx.doi.org/10.1098/rspa.2016.0404">Measurement of - the Earth's rotation: 720 BC to AD 2015</a>. - <cite>Proc Royal Soc A</cite>. 2016;472:20160404. + See: Morrison LV, Stephenson FR, Hohenkerk CY, Zawilski M. + <a href="https://doi.org/10.1098/rspa.2020.0776">Addendum 2020 + to ‘Measurement of the Earth’s rotation: 720 BC to AD 2015’</a>. + <cite>Proc Royal Soc A</cite>. 2021;477:20200776. Also see: Espenak F. <a href="https://eclipse.gsfc.nasa.gov/SEhelp/uncertainty2004.html">Uncertainty in Delta T (ΔT)</a>. @@ -843,7 +843,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes The relationship between POSIX time (that is, <abbr>UTC</abbr> but ignoring <a href="https://en.wikipedia.org/wiki/Leap_second">leap seconds</a>) and <abbr>UTC</abbr> is not agreed upon. - This affects time stamps during the leap second era (1972–2035). + This affects time stamps during the leap second era (1972–2035). Although the POSIX clock officially stops during an inserted leap second, at least one proposed standard has it jumping back a second instead; and in @@ -862,12 +862,12 @@ href="https://www.dissentmagazine.org/blog/booked-a-global-history-of-time-vanes <p> In short, many, perhaps most, of the <code><abbr>tz</abbr></code> -database's pre-1970 and future timestamps are either wrong or +database’s pre-1970 and future timestamps are either wrong or misleading. Any attempt to pass the <code><abbr>tz</abbr></code> database off as the definition of time should be unacceptable to anybody who cares about the facts. -In particular, the <code><abbr>tz</abbr></code> database's +In particular, the <code><abbr>tz</abbr></code> database’s <abbr>LMT</abbr> offsets should not be considered meaningful, and should not prompt creation of timezones merely because two locations @@ -886,7 +886,7 @@ Code compatible with this package is already primary use of this package is to update obsolete time-related files. To do this, you may need to compile the time zone compiler <code>zic</code> supplied with this package instead of using the -system <code>zic</code>, since the format of <code>zic</code>'s +system <code>zic</code>, since the format of <code>zic</code>’s input is occasionally extended, and a platform may still be shipping an older <code>zic</code>. </p> @@ -914,7 +914,8 @@ environment variable <code>TZ</code>, which can have two forms: <h3 id="POSIX.1-2017">POSIX.1-2017 properties and limitations</h3> <p> -Some platforms support only the features required by POSIX.1-2017, +Some platforms support only the features required by POSIX.1-2017 +and earlier editions, and have not yet upgraded to POSIX.1-2024. Code intended to be portable to these platforms must deal with problems that were fixed in later POSIX editions. @@ -956,14 +957,14 @@ with problems that were fixed in later POSIX editions. are 3 or more characters specifying the standard and daylight saving time (<abbr>DST</abbr>) zone abbreviations. Starting with POSIX.1-2001, <var>std</var> and <var>dst</var> - may also be in a quoted form like '<code><+09></code>'; + may also be quoted in angle brackets, like <code><+09></code>; this allows "<code>+</code>" and "<code>-</code>" in the names. </dd> <dt><var>offset</var></dt><dd> is of the form - '<code>[±]<var>hh</var>:[<var>mm</var>[:<var>ss</var>]]</code>' + <code>[±]<var>hh</var>:[<var>mm</var>[:<var>ss</var>]]</code> and specifies the offset west of <abbr>UT</abbr>. - '<var>hh</var>' may be a single digit; + <var>hh</var> may be a single digit; 0≤<var>hh</var>≤24. The default <abbr>DST</abbr> offset is one hour ahead of standard time. @@ -976,10 +977,10 @@ with problems that were fixed in later POSIX editions. </dd> <dt><var>time</var></dt><dd> takes the form - '<var>hh</var><code>:</code>[<var>mm</var>[<code>:</code><var>ss</var>]]' + <var>hh</var><code>:</code>[<var>mm</var>[<code>:</code><var>ss</var>]] and defaults to 02:00. This is the same format as the offset, except that a - leading '<code>+</code>' or '<code>-</code>' is not allowed. + leading "<code>+</code>" or "<code>-</code>" is not allowed. </dd> <dt><var>date</var></dt><dd> takes one of the following forms: @@ -996,7 +997,7 @@ with problems that were fixed in later POSIX editions. for the <var>d</var>th day of week <var>n</var> of month <var>m</var> of the year, where week 1 is the first week in which day <var>d</var> appears, and - '<code>5</code>' stands for the last week in which + "<code>5</code>" stands for the last week in which day <var>d</var> appears (which may be either the 4th or 5th week). Typically, this is the only useful form; the <var>n</var> @@ -1011,8 +1012,8 @@ with problems that were fixed in later POSIX editions. Zealand after 2007. It says that standard time (<abbr>NZST</abbr>) is 12 hours ahead of <abbr>UT</abbr>, and that daylight saving time - (<abbr>NZDT</abbr>) is observed from September's last Sunday at - 02:00 until April's first Sunday at 03:00: + (<abbr>NZDT</abbr>) is observed from September’s last Sunday at + 02:00 until April’s first Sunday at 03:00: </p> <pre><code>TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'</code></pre> @@ -1048,11 +1049,11 @@ POSIX.1-2024 extends POSIX.1-2017 in the following significant ways: Earlier POSIX editions lack this requirement. </li> <li> - DST transition times can range from −167:59:59 + DST transition times can range from −167:59:59 to 167:59:59 instead of merely from 00:00:00 to 24:59:59. This allows for proleptic TZ strings like <code>"<-02>2<-01>,M3.5.0/-1,M10.5.0/0"</code> - where the transition time −1:00 means 23:00 the previous day. + where the transition time −1:00 means 23:00 the previous day. </li> </ul> <p> @@ -1065,14 +1066,14 @@ However POSIX.1-2024, like earlier POSIX editions, has some limitations: </li> <li> In POSIX, there is no tamper-proof way for a process to learn the - system's best idea of local (wall clock) time. + system’s best idea of local (wall clock) time. This is important for applications that an administrator wants - used only at certain times – without regard to whether the + used only at certain times – without regard to whether the user has fiddled the <code>TZ</code> environment variable. - While an administrator can "do everything in <abbr>UT</abbr>" to + While an administrator can “do everything in <abbr>UT</abbr>” to get around the problem, doing so is inconvenient and precludes - handling daylight saving time shifts – as might be required to + handling daylight saving time shifts – as might be required to limit phone calls to off-peak hours. </li> <li> @@ -1081,8 +1082,7 @@ However POSIX.1-2024, like earlier POSIX editions, has some limitations: </li> <li> POSIX does not define the <abbr>DST</abbr> transitions - for <code>TZ</code> values like - "<code>EST5EDT</code>". + for settings like <code>TZ='EST5EDT'</code>. Traditionally the current <abbr>US</abbr> <abbr>DST</abbr> rules were used to interpret such values, but this meant that the <abbr>US</abbr> <abbr>DST</abbr> rules were compiled into each @@ -1124,7 +1124,7 @@ However POSIX.1-2024, like earlier POSIX editions, has some limitations: If the <code>TZ</code> environment variable uses the geographical format, it is used in generating the name of a file from which time-related information is read. - The file's format is <dfn><abbr>TZif</abbr></dfn>, + The file’s format is <dfn><abbr>TZif</abbr></dfn>, a timezone information format that contains binary data; see <a href="https://www.rfc-editor.org/rfc/9636">Internet <abbr>RFC</abbr> 9636</a>. @@ -1138,18 +1138,18 @@ However POSIX.1-2024, like earlier POSIX editions, has some limitations: <p> When the <code><abbr>tz</abbr></code> code was developed in the 1980s, it was recognized that allowing the <code>TZ</code> environment - variable to take on values such as '<code>America/New_York</code>' - might cause "old" programs (that expect <code>TZ</code> to have a + variable to take on values such as <code>America/New_York</code> + might cause old programs (that expect <code>TZ</code> to have a certain format) to operate incorrectly; consideration was given to using some other environment variable (for example, <code>TIMEZONE</code>) - to hold the string used to generate the <abbr>TZif</abbr> file's name. + to hold the string used to generate the <abbr>TZif</abbr> file’s name. In the end, however, it was decided to continue using <code>TZ</code>: it is widely used for time zone purposes; separately maintaining both <code>TZ</code> and <code>TIMEZONE</code> seemed a nuisance; and systems where - "new" forms of <code>TZ</code> might cause problems can simply - use legacy <code>TZ</code> values such as "<code>EST5EDT</code>" which - can be used by "new" programs as well as by "old" programs that + new forms of <code>TZ</code> might cause problems can simply + use legacy settings such as <code>TZ='EST5EDT'</code> which + can be used by new programs as well as by old programs that assume pre-POSIX <code>TZ</code> values. </p> </li> @@ -1192,20 +1192,20 @@ The vestigial <abbr>API</abbr>s are: The POSIX <code>tzname</code> variable does not suffice and is no longer needed. It is planned to be removed in a future edition of POSIX. - To get a timestamp's time zone abbreviation, consult + To get a timestamp’s time zone abbreviation, consult the <code>tm_zone</code> member if available; otherwise, - use <code>strftime</code>'s <code>"%Z"</code> conversion + use <code>strftime</code>’s <code>"%Z"</code> conversion specification. </li> <li> The POSIX <code>daylight</code> and <code>timezone</code> variables do not suffice and are no longer needed. They are planned to be removed in a future edition of POSIX. - To get a timestamp's <abbr>UT</abbr> offset, consult + To get a timestamp’s <abbr>UT</abbr> offset, consult the <code>tm_gmtoff</code> member if available; otherwise, subtract values returned by <code>localtime</code> and <code>gmtime</code> using the rules of the Gregorian calendar, - or use <code>strftime</code>'s <code>"%z"</code> conversion + or use <code>strftime</code>’s <code>"%z"</code> conversion specification if a string like <code>"+0900"</code> suffices. </li> <li> @@ -1230,9 +1230,9 @@ The vestigial <abbr>API</abbr>s are: <li> The <a href="https://en.wikipedia.org/wiki/Version_7_Unix">7th Edition UNIX</a> <code>timezone</code> function is not present in this - package; it is impossible to reliably map <code>timezone</code>'s - arguments (a "minutes west of <abbr>GMT</abbr>" value and a - "daylight saving time in effect" flag) to a time zone + package; it is impossible to reliably map <code>timezone</code>’s + arguments (a “minutes west of <abbr>GMT</abbr>” value and a + “daylight saving time in effect” flag) to a time zone abbreviation, and we refuse to guess. Programs that in the past used the <code>timezone</code> function may now examine <code>localtime(&clock)->tm_zone</code> @@ -1262,7 +1262,7 @@ The vestigial <abbr>API</abbr>s are: The functions that are conditionally compiled if <code>STD_INSPIRED</code> is nonzero should, at this point, be looked on primarily as food for thought. - They are not in any sense "standard compatible" – some are + They are not in any sense “standard compatible” – some are not, in fact, specified in <em>any</em> standard. They do, however, represent responses of various authors to standardization proposals. @@ -1293,11 +1293,11 @@ The <code><abbr>tz</abbr></code> code and data supply the following interfaces: <ul> <li> A set of timezone names as per - "<a href="#naming">Timezone identifiers</a>" above. + “<a href="#naming">Timezone identifiers</a>” above. </li> <li> - Library functions described in "<a href="#functions">Time and date - functions</a>" above. + Library functions described in “<a href="#functions">Time and date + functions</a>” above. </li> <li> The programs <code>tzselect</code>, <code>zdump</code>, @@ -1319,7 +1319,7 @@ The <code><abbr>tz</abbr></code> code and data supply the following interfaces: </li> <li> The version number of the code and data, as the first line of - the text file '<code>version</code>' in each release. + the text file "<code>version</code>" in each release. </li> </ul> @@ -1347,7 +1347,7 @@ For example, even though the <samp>Asia/Bangkok</samp> timezone currently includes Chang Mai, Hanoi, and Phnom Penh, this is not part of the stable interface and the timezone can split at any time. If a calendar application records a future event in some location other -than Bangkok by putting "<samp>Asia/Bangkok</samp>" in the event's record, +than Bangkok by putting <samp>Asia/Bangkok</samp> in the event’s record, the application should be robust in the presence of timezone splits between now and the future time. </p> @@ -1381,7 +1381,7 @@ commonly used by <a href="https://www.ntp.org"><abbr title="Network Time Protocol">NTP</abbr></a> software that adjusts the kernel clock. However, kernel-clock twiddling approximates UTC only roughly, -and systems needing more precise UTC can use this package's leap +and systems needing more precise UTC can use this package’s leap second support directly. </p> @@ -1391,8 +1391,8 @@ counts of seconds since the POSIX epoch normally include leap seconds, as opposed to POSIX <code>time_t</code> counts which exclude leap seconds. This modified timescale is converted to <abbr>UTC</abbr> at the same point that time zone and <abbr>DST</abbr> -adjustments are applied – -namely, at calls to <code>localtime</code> and analogous functions – +adjustments are applied – +namely, at calls to <code>localtime</code> and analogous functions – and the process is driven by leap second information stored in alternate versions of the <abbr>TZif</abbr> files. Because a leap second adjustment may be needed even @@ -1402,7 +1402,7 @@ also need to consult a <abbr>TZif</abbr> file, conventionally named <samp><abbr>Etc/UTC</abbr></samp> (<samp><abbr>GMT</abbr></samp> in previous versions), to see whether leap second corrections are needed. -To convert an application's <code>time_t</code> timestamps to or from +To convert an application’s <code>time_t</code> timestamps to or from POSIX <code>time_t</code> timestamps (for use when, say, embedding or interpreting timestamps in portable <a href="https://en.wikipedia.org/wiki/Tar_(computing)"><code>tar</code></a> @@ -1425,7 +1425,7 @@ So if you configure your kernel to count leap seconds, you should also discard <samp>zoneinfo</samp> and rename <samp>zoneinfo-leaps</samp> to <samp>zoneinfo</samp>. Alternatively, you can install just one set of <abbr>TZif</abbr> files -in the first place; see the <code>REDO</code> variable in this package's +in the first place; see the <code>REDO</code> variable in this package’s <a href="https://en.wikipedia.org/wiki/Makefile">makefile</a>. </p> </section> @@ -1440,7 +1440,7 @@ An excellent resource in this area is Edward M. Reingold and Nachum Dershowitz, <cite><a href="https://www.cambridge.org/fr/academic/subjects/computer-science/computing-general-interest/calendrical-calculations-ultimate-edition-4th-edition">Calendrical Calculations: The Ultimate Edition</a></cite>, Cambridge University Press (2018). -Other information and sources are given in the file '<code>calendars</code>' +Other information and sources are given in the file "<code>calendars</code>" in the <code><abbr>tz</abbr></code> distribution. They sometimes disagree. </p> @@ -1450,20 +1450,20 @@ They sometimes disagree. <h2 id="planets">Time and time zones off Earth</h2> <p> The European Space Agency is <a -href='https://www.esa.int/Applications/Navigation/Telling_time_on_the_Moon'>considering</a> +href="https://www.esa.int/Applications/Navigation/Telling_time_on_the_Moon">considering</a> the establishment of a reference timescale for the Moon, which has days roughly equivalent to 29.5 Earth days, and where relativistic effects cause clocks to tick slightly faster than on Earth. Also, <abbr title="National Aeronautics and Space Administration">NASA</abbr> has been <a -href='https://www.whitehouse.gov/wp-content/uploads/2024/04/Celestial-Time-Standardization-Policy.pdf'>ordered</a> +href="https://www.whitehouse.gov/wp-content/uploads/2024/04/Celestial-Time-Standardization-Policy.pdf">ordered</a> to consider the establishment of Coordinated Lunar Time (<abbr>LTC</abbr>). It is not yet known whether the US and European efforts will result in multiple timescales on the Moon. </p> <p> -Some people's work schedules have used +Some people’s work schedules have used <a href="https://en.wikipedia.org/wiki/Timekeeping_on_Mars">Mars time</a>. Jet Propulsion Laboratory (JPL) coordinators kept Mars time on and off during the @@ -1473,7 +1473,7 @@ Some of their family members also adapted to Mars time. Dozens of special Mars watches were built for JPL workers who kept Mars time during the <a href="https://en.wikipedia.org/wiki/Mars_Exploration_Rover">Mars -Exploration Rovers (MER)</a> mission (2004–2018). +Exploration Rovers (MER)</a> mission (2004–2018). These timepieces looked like normal Seikos and Citizens but were adjusted to use Mars seconds rather than terrestrial seconds, although unfortunately the adjusted watches were unreliable and appear to have @@ -1481,12 +1481,12 @@ had only limited use. </p> <p> -A Mars solar day is called a "sol" and has a mean period equal to +A Mars solar day is called a “sol” and has a mean period equal to about 24 hours 39 minutes 35.244 seconds in terrestrial time. It is divided into a conventional 24-hour clock, so each Mars second equals about 1.02749125 terrestrial seconds. -(One MER worker noted, "If I am working Mars hours, and Mars hours are -2.5% more than Earth hours, shouldn't I get an extra 2.5% pay raise?") +(One MER worker noted, “If I am working Mars hours, and Mars hours are +2.5% more than Earth hours, shouldn’t I get an extra 2.5% pay raise?”) </p> <p> @@ -1494,7 +1494,7 @@ The <a href="https://en.wikipedia.org/wiki/Prime_meridian">prime meridian</a> of Mars goes through the center of the crater <a href="https://en.wikipedia.org/wiki/Airy-0">Airy-0</a>, named in honor of the British astronomer who built the Greenwich telescope that -defines Earth's prime meridian. +defines Earth’s prime meridian. Mean solar time on the Mars prime meridian is called Mars Coordinated Time (<abbr>MTC</abbr>). </p> @@ -1502,13 +1502,13 @@ called Mars Coordinated Time (<abbr>MTC</abbr>). <p> Each landed mission on Mars has adopted a different reference for solar timekeeping, so there is no real standard for Mars time zones. -For example, the MER mission defined two time zones "Local -Solar Time A" and "Local Solar Time B" for its two missions, each zone +For example, the MER mission defined two time zones “Local +Solar Time A” and “Local Solar Time B” for its two missions, each zone designed so that its time equals local true solar time at approximately the middle of the nominal mission. The A and B zones differ enough so that an MER worker assigned to -the A zone might suffer "Mars lag" when switching to work in the B zone. -Such a "time zone" is not particularly suited for any application +the A zone might suffer “Mars lag” when switching to work in the B zone. +Such a “time zone” is not particularly suited for any application other than the mission itself. </p> @@ -1522,13 +1522,13 @@ sequential count of Mars solar days elapsed since about 1873-12-29 <p> In our solar system, Mars is the planet with time and calendar most -like Earth's. +like Earth’s. On other planets, Sun-based time and calendars would work quite differently. -For example, although Mercury's +For example, although Mercury’s <a href="https://en.wikipedia.org/wiki/Rotation_period">sidereal rotation period</a> is 58.646 Earth days, Mercury revolves around the -Sun so rapidly that an observer on Mercury's equator would see a +Sun so rapidly that an observer on Mercury’s equator would see a sunrise only every 175.97 Earth days, i.e., a Mercury year is 0.5 of a Mercury day. Venus is more complicated, partly because its rotation is slightly @@ -1554,8 +1554,8 @@ Sources for time on other planets: <ul> <li> Michael Allison and Robert Schmunk, - "<a href="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Technical - Notes on Mars Solar Time as Adopted by the Mars24 Sunclock</a>" + “<a href="https://www.giss.nasa.gov/tools/mars24/help/notes.html">Technical + Notes on Mars Solar Time as Adopted by the Mars24 Sunclock</a>” (2020-03-08). </li> <li> @@ -1565,28 +1565,33 @@ Sources for time on other planets: </li> <li> Jia-Rui Chong, - "<a href="https://www.latimes.com/archives/la-xpm-2004-jan-14-sci-marstime14-story.html">Workdays - Fit for a Martian</a>", <cite>Los Angeles Times</cite> - (2004-01-14), pp A1, A20–A21. + “<a href="https://www.latimes.com/archives/la-xpm-2004-jan-14-sci-marstime14-story.html">Workdays + Fit for a Martian</a>”, <cite>Los Angeles Times</cite> + (2004-01-14), pp A1, A20–A21. </li> <li> Tom Chmielewski, - "<a href="https://www.theatlantic.com/technology/archive/2015/02/jet-lag-is-worse-on-mars/386033/">Jet - Lag Is Worse on Mars</a>", <cite>The Atlantic</cite> (2015-02-26) + “<a href="https://www.theatlantic.com/technology/archive/2015/02/jet-lag-is-worse-on-mars/386033/">Jet + Lag Is Worse on Mars</a>”, <cite>The Atlantic</cite> (2015-02-26) </li> <li> Matt Williams, - "<a href="https://www.universetoday.com/37481/days-of-the-planets/">How - long is a day on the other planets of the solar system?</a>" + “<a href="https://www.universetoday.com/37481/days-of-the-planets/">How + long is a day on the other planets of the solar system?</a>” (2016-01-20). </li> </ul> </section> <footer> - <hr> - This file is in the public domain, so clarified as of 2009-05-17 by - Arthur David Olson. +<hr> +This web page is in the public domain, so clarified as of +2009-05-17 by Arthur David Olson. +<br> +Please send corrections to this web page to the +<a href="mailto:tz@iana.org">time zone mailing list</a>. +The mailing list and its archives are public, +so please do not send confidential information. </footer> </body> </html> @@ -1 +1 @@ -2025b +2025c diff --git a/zone1970.tab b/zone1970.tab index 36535bdf5cfb..cd43e3d2e0d8 100644 --- a/zone1970.tab +++ b/zone1970.tab @@ -2,15 +2,15 @@ # # This file is in the public domain. # -# From Paul Eggert (2018-06-27): +# From Paul Eggert (2025-05-15): # This file contains a table where each row stands for a timezone where # civil timestamps have agreed since 1970. Columns are separated by -# a single tab. Lines beginning with '#' are comments. All text uses +# a single tab. Lines beginning with ‘#’ are comments. All text uses # UTF-8 encoding. The columns of the table are as follows: # # 1. The countries that overlap the timezone, as a comma-separated list -# of ISO 3166 2-character country codes. See the file 'iso3166.tab'. -# 2. Latitude and longitude of the timezone's principal location +# of ISO 3166 2-character country codes. +# 2. Latitude and longitude of the timezone’s principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, # first latitude (+ is north), then longitude (+ is east). @@ -197,7 +197,7 @@ KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe KZ +4431+05016 Asia/Aqtau Mangghystaū/Mankistau -KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur'yev +KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur’yev KZ +5113+05121 Asia/Oral West Kazakhstan LB +3353+03530 Asia/Beirut LK +0656+07951 Asia/Colombo @@ -245,7 +245,7 @@ PE -1203-07703 America/Lima PF -1732-14934 Pacific/Tahiti Society Islands PF -0900-13930 Pacific/Marquesas Marquesas Islands PF -2308-13457 Pacific/Gambier Gambier Islands -PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d'Urville +PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d’Urville PG -0613+15534 Pacific/Bougainville Bougainville PH +143512+1205804 Asia/Manila PK +2452+06703 Asia/Karachi @@ -265,7 +265,7 @@ RO +4426+02606 Europe/Bucharest RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area -# Mention RU and UA alphabetically. See "territorial claims" above. +# Mention RU and UA alphabetically. See “territorial claims” above. RU,UA +4457+03406 Europe/Simferopol Crimea RU +5836+04939 Europe/Kirov MSK+00 - Kirov RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd @@ -353,20 +353,20 @@ ZA,LS,SZ -2615+02800 Africa/Johannesburg # The next section contains experimental tab-separated comments for # use by user agents like tzselect that identify continents and oceans. # -# For example, the comment "#@AQ<tab>Antarctica/" means the country code +# For example, the comment ‘#@AQ<tab>Antarctica/’ means the country code # AQ is in the continent Antarctica regardless of the Zone name, # so Pacific/Auckland should be listed under Antarctica as well as -# under the Pacific because its line's country codes include AQ. +# under the Pacific because its line’s country codes include AQ. # # If more than one country code is affected each is listed separated -# by commas, e.g., #@IS,SH<tab>Atlantic/". If a country code is in +# by commas, e.g., ‘#@IS,SH<tab>Atlantic/’. If a country code is in # more than one continent or ocean, each is listed separated by -# commas, e.g., the second column of "#@CY,TR<tab>Asia/,Europe/". +# commas, e.g., the second column of ‘#@CY,TR<tab>Asia/,Europe/’. # # These experimental comments are present only for country codes where # the continent or ocean is not already obvious from the Zone name. # For example, there is no such comment for RU since it already -# corresponds to Zone names starting with both "Europe/" and "Asia/". +# corresponds to Zone names starting with both ‘Europe/’ and ‘Asia/’. # #@AQ Antarctica/ #@IS,SH Atlantic/ diff --git a/zonenow.tab b/zonenow.tab index 093f0a0cb749..1d64b3912461 100644 --- a/zonenow.tab +++ b/zonenow.tab @@ -5,12 +5,12 @@ # From Paul Eggert (2023-12-18): # This file contains a table where each row stands for a timezone # where civil timestamps are predicted to agree from now on. -# This file is like zone1970.tab (see zone1970.tab's comments), +# This file is like zone1970.tab (see zone1970.tab’s comments), # but with the following changes: # # 1. Each timezone corresponds to a set of clocks that are planned # to agree from now on. This is a larger set of clocks than in -# zone1970.tab, where each timezone's clocks must agree from 1970 on. +# zone1970.tab, where each timezone’s clocks must agree from 1970 on. # 2. The first column is irrelevant and ignored. # 3. The table is sorted in a different way: # first by standard time UTC offset; @@ -29,19 +29,19 @@ #XX coordinates TZ comments # # -11 - SST -XX -1416-17042 Pacific/Pago_Pago Midway; Samoa ("SST") +XX -1416-17042 Pacific/Pago_Pago Midway; Samoa (SST) # # -11 XX -1901-16955 Pacific/Niue Niue # # -10 - HST -XX +211825-1575130 Pacific/Honolulu Hawaii ("HST") +XX +211825-1575130 Pacific/Honolulu Hawaii (HST) # # -10 XX -1732-14934 Pacific/Tahiti Tahiti; Cook Islands # # -10/-09 - HST / HDT (North America DST) -XX +515248-1763929 America/Adak western Aleutians in Alaska ("HST/HDT") +XX +515248-1763929 America/Adak western Aleutians in Alaska (HST/HDT) # # -09:30 XX -0900-13930 Pacific/Marquesas Marquesas @@ -50,58 +50,58 @@ XX -0900-13930 Pacific/Marquesas Marquesas XX -2308-13457 Pacific/Gambier Gambier # # -09/-08 - AKST/AKDT (North America DST) -XX +611305-1495401 America/Anchorage most of Alaska ("AKST/AKDT") +XX +611305-1495401 America/Anchorage most of Alaska (AKST/AKDT) # # -08 XX -2504-13005 Pacific/Pitcairn Pitcairn # # -08/-07 - PST/PDT (North America DST) -XX +340308-1181434 America/Los_Angeles Pacific ("PST/PDT") - US & Canada; Mexico near US border +XX +340308-1181434 America/Los_Angeles Pacific (PST/PDT) - US & Canada; Mexico near US border # # -07 - MST -XX +332654-1120424 America/Phoenix Mountain Standard ("MST") - Arizona; western Mexico; Yukon +XX +332654-1120424 America/Phoenix Mountain Standard (MST) - Arizona; western Mexico; Yukon # # -07/-06 - MST/MDT (North America DST) -XX +394421-1045903 America/Denver Mountain ("MST/MDT") - US & Canada; Mexico near US border +XX +394421-1045903 America/Denver Mountain (MST/MDT) - US & Canada; Mexico near US border # # -06 XX -0054-08936 Pacific/Galapagos Galápagos # # -06 - CST -XX +1924-09909 America/Mexico_City Central Standard ("CST") - Saskatchewan; central Mexico; Central America +XX +1924-09909 America/Mexico_City Central Standard (CST) - Saskatchewan; central Mexico; Central America # # -06/-05 (Chile DST) XX -2709-10926 Pacific/Easter Easter Island # # -06/-05 - CST/CDT (North America DST) -XX +415100-0873900 America/Chicago Central ("CST/CDT") - US & Canada; Mexico near US border +XX +415100-0873900 America/Chicago Central (CST/CDT) - US & Canada; Mexico near US border # # -05 XX -1203-07703 America/Lima eastern South America # # -05 - EST -XX +175805-0764736 America/Jamaica Eastern Standard ("EST") - Caymans; Jamaica; eastern Mexico; Panama +XX +175805-0764736 America/Jamaica Eastern Standard (EST) - Caymans; Jamaica; eastern Mexico; Panama # # -05/-04 - CST/CDT (Cuba DST) XX +2308-08222 America/Havana Cuba # # -05/-04 - EST/EDT (North America DST) -XX +404251-0740023 America/New_York Eastern ("EST/EDT") - US & Canada +XX +404251-0740023 America/New_York Eastern (EST/EDT) - US & Canada # # -04 XX +1030-06656 America/Caracas western South America # # -04 - AST -XX +1828-06954 America/Santo_Domingo Atlantic Standard ("AST") - eastern Caribbean +XX +1828-06954 America/Santo_Domingo Atlantic Standard (AST) - eastern Caribbean # # -04/-03 (Chile DST) XX -3327-07040 America/Santiago most of Chile # # -04/-03 - AST/ADT (North America DST) -XX +4439-06336 America/Halifax Atlantic ("AST/ADT") - Canada; Bermuda +XX +4439-06336 America/Halifax Atlantic (AST/ADT) - Canada; Bermuda # # -03:30/-02:30 - NST/NDT (North America DST) -XX +4734-05243 America/St_Johns Newfoundland ("NST/NDT") +XX +4734-05243 America/St_Johns Newfoundland (NST/NDT) # # -03 XX -2332-04637 America/Sao_Paulo eastern and southern South America @@ -122,43 +122,43 @@ XX +1455-02331 Atlantic/Cape_Verde Cape Verde XX +3744-02540 Atlantic/Azores Azores # # +00 - GMT -XX +0519-00402 Africa/Abidjan far western Africa; Iceland ("GMT") +XX +0519-00402 Africa/Abidjan far western Africa; Iceland (GMT) # # +00/+01 - GMT/BST (EU DST) -XX +513030-0000731 Europe/London United Kingdom ("GMT/BST") +XX +513030-0000731 Europe/London United Kingdom (GMT/BST) # # +00/+01 - WET/WEST (EU DST) -XX +3843-00908 Europe/Lisbon western Europe ("WET/WEST") +XX +3843-00908 Europe/Lisbon western Europe (WET/WEST) # # +00/+02 - Troll DST XX -720041+0023206 Antarctica/Troll Troll Station in Antarctica # # +01 - CET -XX +3647+00303 Africa/Algiers Algeria, Tunisia ("CET") +XX +3647+00303 Africa/Algiers Algeria, Tunisia (CET) # # +01 - WAT -XX +0627+00324 Africa/Lagos western Africa ("WAT") +XX +0627+00324 Africa/Lagos western Africa (WAT) # # +01/+00 - IST/GMT (EU DST in reverse) -XX +5320-00615 Europe/Dublin Ireland ("IST/GMT") +XX +5320-00615 Europe/Dublin Ireland (IST/GMT) # # +01/+00 - (Morocco DST) XX +3339-00735 Africa/Casablanca Morocco # # +01/+02 - CET/CEST (EU DST) -XX +4852+00220 Europe/Paris central Europe ("CET/CEST") +XX +4852+00220 Europe/Paris central Europe (CET/CEST) # # +02 - CAT -XX -2558+03235 Africa/Maputo central Africa ("CAT") +XX -2558+03235 Africa/Maputo central Africa (CAT) # # +02 - EET -XX +3254+01311 Africa/Tripoli Libya; Kaliningrad ("EET") +XX +3254+01311 Africa/Tripoli Libya; Kaliningrad (EET) # # +02 - SAST -XX -2615+02800 Africa/Johannesburg southern Africa ("SAST") +XX -2615+02800 Africa/Johannesburg southern Africa (SAST) # # +02/+03 - EET/EEST (EU DST) -XX +3758+02343 Europe/Athens eastern Europe ("EET/EEST") +XX +3758+02343 Europe/Athens eastern Europe (EET/EEST) # # +02/+03 - EET/EEST (Egypt DST) XX +3003+03115 Africa/Cairo Egypt @@ -179,10 +179,10 @@ XX +314650+0351326 Asia/Jerusalem Israel XX +4101+02858 Europe/Istanbul Near East; Belarus # # +03 - EAT -XX -0117+03649 Africa/Nairobi eastern Africa ("EAT") +XX -0117+03649 Africa/Nairobi eastern Africa (EAT) # # +03 - MSK -XX +554521+0373704 Europe/Moscow Moscow ("MSK") +XX +554521+0373704 Europe/Moscow Moscow (MSK) # # +03:30 XX +3540+05126 Asia/Tehran Iran @@ -197,13 +197,13 @@ XX +3431+06912 Asia/Kabul Afghanistan XX +4120+06918 Asia/Tashkent Russia; Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives # # +05 - PKT -XX +2452+06703 Asia/Karachi Pakistan ("PKT") +XX +2452+06703 Asia/Karachi Pakistan (PKT) # # +05:30 XX +0656+07951 Asia/Colombo Sri Lanka # # +05:30 - IST -XX +2232+08822 Asia/Kolkata India ("IST") +XX +2232+08822 Asia/Kolkata India (IST) # # +05:45 XX +2743+08519 Asia/Kathmandu Nepal @@ -218,25 +218,25 @@ XX +1647+09610 Asia/Yangon Myanmar; Cocos XX +1345+10031 Asia/Bangkok Russia; Indochina; Christmas Island # # +07 - WIB -XX -0610+10648 Asia/Jakarta Indonesia ("WIB") +XX -0610+10648 Asia/Jakarta Indonesia (WIB) # # +08 XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia # # +08 - AWST -XX -3157+11551 Australia/Perth Western Australia ("AWST") +XX -3157+11551 Australia/Perth Western Australia (AWST) # # +08 - CST -XX +3114+12128 Asia/Shanghai China ("CST") +XX +3114+12128 Asia/Shanghai China (CST) # # +08 - HKT -XX +2217+11409 Asia/Hong_Kong Hong Kong ("HKT") +XX +2217+11409 Asia/Hong_Kong Hong Kong (HKT) # # +08 - PHT -XX +143512+1205804 Asia/Manila Philippines ("PHT") +XX +143512+1205804 Asia/Manila Philippines (PHT) # # +08 - WITA -XX -0507+11924 Asia/Makassar Indonesia ("WITA") +XX -0507+11924 Asia/Makassar Indonesia (WITA) # # +08:45 XX -3143+12852 Australia/Eucla Eucla @@ -245,31 +245,31 @@ XX -3143+12852 Australia/Eucla Eucla XX +5203+11328 Asia/Chita Russia; Palau; East Timor # # +09 - JST -XX +353916+1394441 Asia/Tokyo Japan ("JST"); Eyre Bird Observatory +XX +353916+1394441 Asia/Tokyo Japan (JST); Eyre Bird Observatory # # +09 - KST -XX +3733+12658 Asia/Seoul Korea ("KST") +XX +3733+12658 Asia/Seoul Korea (KST) # # +09 - WIT -XX -0232+14042 Asia/Jayapura Indonesia ("WIT") +XX -0232+14042 Asia/Jayapura Indonesia (WIT) # # +09:30 - ACST -XX -1228+13050 Australia/Darwin Northern Territory ("ACST") +XX -1228+13050 Australia/Darwin Northern Territory (ACST) # # +09:30/+10:30 - ACST/ACDT (Australia DST) -XX -3455+13835 Australia/Adelaide South Australia ("ACST/ACDT") +XX -3455+13835 Australia/Adelaide South Australia (ACST/ACDT) # # +10 -XX +4310+13156 Asia/Vladivostok Russia; Yap; Chuuk; Papua New Guinea; Dumont d'Urville +XX +4310+13156 Asia/Vladivostok Russia; Yap; Chuuk; Papua New Guinea; Dumont d’Urville # # +10 - AEST -XX -2728+15302 Australia/Brisbane Queensland ("AEST") +XX -2728+15302 Australia/Brisbane Queensland (AEST) # # +10 - ChST -XX +1328+14445 Pacific/Guam Mariana Islands ("ChST") +XX +1328+14445 Pacific/Guam Mariana Islands (ChST) # # +10/+11 - AEST/AEDT (Australia DST) -XX -3352+15113 Australia/Sydney southeast Australia ("AEST/AEDT") +XX -3352+15113 Australia/Sydney southeast Australia (AEST/AEDT) # # +10:30/+11 XX -3133+15905 Australia/Lord_Howe Lord Howe Island @@ -284,7 +284,7 @@ XX -2903+16758 Pacific/Norfolk Norfolk Island XX +5301+15839 Asia/Kamchatka Russia; Tuvalu; Fiji; etc. # # +12/+13 (New Zealand DST) -XX -3652+17446 Pacific/Auckland New Zealand ("NZST/NZDT") +XX -3652+17446 Pacific/Auckland New Zealand (NZST/NZDT) # # +12:45/+13:45 (Chatham DST) XX -4357-17633 Pacific/Chatham Chatham Islands |
