tzdb 2025a: 3 thay đổi múi giờ

Xem 3 thay đổi múi giờ trong IANA tzdb 2025a, phát hành ngày 15 tháng 1, 2025, cùng liên kết tới các quốc gia và múi giờ liên quan.

Ngày phát hành: · Tự động tạo từ dữ liệu nguồn.

Đăng tại Time Dozen:

Nguồn: IANA

Phần tóm tắt và thay đổi mốc thời gian được dịch từ ghi chú phát hành IANA; mục gập bên dưới giữ nguyên văn tiếng Anh.

Tóm tắt

  • Paraguay áp dụng -03 cố định bắt đầu từ mùa xuân 2024.
  • Cải thiện dữ liệu trước 1991 của Philippines.
  • Etc/Unknown nay được dành riêng.

Thay đổi mốc thời gian tương lai

  • Paraguay ngừng đổi giờ sau lần tiến giờ ngày 2024-10-06, nên nay ở -03 cố định. (Cảm ơn Heitor David Pinto và Even Scharning.) Thay đổi này ảnh hưởng các mốc thời gian từ 2025-03-22, cũng như cờ tm_isdst đã lỗi thời từ 2024-10-15.

Thay đổi mốc thời gian quá khứ

  • Sửa các mốc thời gian của Philippines trước 1900, và từ 1937 đến 1990. (Cảm ơn P Chan đã báo và dẫn nguồn.) Bao gồm điều chỉnh giờ địa phương trung bình trước 1899; sửa các lần chuyển đổi vào tháng 9 năm 1899, tháng 1 năm 1937 và tháng 6 năm 1954; thêm các lần chuyển đổi vào tháng 12 năm 1941, tháng 11 năm 1945, tháng 3 và tháng 9 năm 1977, tháng 5 và tháng 7 năm 1990; và xóa các lần chuyển đổi sai vào tháng 3 và tháng 9 năm 1978.

Thay đổi dữ liệu

  • Thêm các dòng zone1970.tab cho trạm nghiên cứu Concordia và Eyre Bird Observatory. (Cảm ơn Derick Rethans và Jule Dabars.)
Ghi chú khác của bản này (mã nguồn, quy trình build, tài liệu), nguyên văn tiếng Anh

Changes to code

  • strftime %s now generates the correct numeric string even when the represented number does not fit into time_t. This is better than generating the numeric equivalent of (time_t) -1, as strftime did in TZDB releases 96a (when %s was introduced) through 2020a and in releases 2022b through 2024b. It is also better than failing and returning 0, as strftime did in releases 2020b through 2022a.
  • strftime now outputs an invalid conversion specifier as-is, instead of eliding the leading '%', which confused debugging.
  • An invalid TZ now generates the time zone abbreviation "-00", not "UTC", to help the user see that an error has occurred. (Thanks to Arthur David Olson for suggesting a "wrong result".)
  • mktime and timeoff no longer incorrectly fail merely because a struct tm component near INT_MIN or INT_MAX overflows when a lower-order component carries into it.
  • TZNAME_MAXIMUM, the maximum number of bytes in a proleptic TZ string's time zone abbreviation, now defaults to 254 not 255. This helps reduce the size of internal state from 25480 to 21384 on common platforms. This change should not be a problem, as nobody uses such long "abbreviations" and the longstanding tzcode maximum was 16 until release 2023a. For those who prefer no arbitrary limits, you can now specify TZNAME_MAXIMUM values up to PTRDIFF_MAX, a limit forced by C anyway; formerly tzcode silently misbehaved unless TZNAME_MAXIMUM was less than INT_MAX.
  • tzset and related functions no longer leak a file descriptor if another thread forks or execs at about the same time and if the platform has O_CLOFORK and O_CLOEXEC respectively. Also, the functions no longer let a TZif file become a controlling terminal.
  • 'zdump -' now reads TZif data from /dev/stdin. (From a question by Arthur David Olson.)

Changes to documentation

  • The name Etc/Unknown is now reserved: it will not be used by TZDB. This is for compatibility with CLDR, which uses the string "Etc/Unknown" for an unknown or invalid timezone. (Thanks to Justin Grant, Mark Davis, and Guy Harris.)
  • Cite Internet RFC 9636, which obsoletes RFC 8536 for TZif format.