summaryrefslogtreecommitdiff
path: root/newtzset.3.txt
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2025-12-11 10:28:59 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2025-12-11 10:28:59 +0000
commit0d46d875e60091694abe5d38e0cbb4c8019bfd71 (patch)
tree5d52afe9fe7ccb0e9f4357ab8e9926be47b129a3 /newtzset.3.txt
parent76d3e9d6b36023210e896d00ecef2d19f0acd2d8 (diff)
Import tzcode 2025cvendor/tzcode/tzcode2025c
Diffstat (limited to 'newtzset.3.txt')
-rw-r--r--newtzset.3.txt191
1 files changed, 98 insertions, 93 deletions
diff --git a/newtzset.3.txt b/newtzset.3.txt
index e86b64ee9cca..b0d929948bb8 100644
--- a/newtzset.3.txt
+++ b/newtzset.3.txt
@@ -41,10 +41,15 @@ DESCRIPTION
information, and, if that file cannot be read, is used directly
as a specification of the time conversion information.
- When TZ contents are used as a pathname, a pathname beginning with "/"
+ When TZ contents are used as a pathname, a pathname beginning with “/”
is used as-is; otherwise the pathname is relative to a system time
- conversion information directory. The file must be in the format
- specified in tzfile(5).
+ conversion information directory. In a privileged program the pathname
+ must be relative. Relative pathnames must not contain “..” components.
+ For the purpose of these checks, a file name beginning with “/” is
+ considered to be relative if it is the localtime file's name, or if it
+ starts with the system timezone directory's name followed by one more
+ more slashes. The file must be a regular file in the format specified
+ in tzfile(5).
When TZ is used directly as a specification of the time conversion
information, it must have the following syntax:
@@ -54,157 +59,157 @@ DESCRIPTION
Where:
std and dst
- Three or more bytes that are the designation for the
- standard (std) or the alternative (dst, such as daylight
- saving time) time zone. Only std is required; if dst is
+ Three or more bytes that are the designation for the
+ standard (std) or the alternative (dst, such as daylight
+ saving time) time zone. Only std is required; if dst is
missing, then daylight saving time does not apply in this
- locale. Upper- and lowercase letters are explicitly
- allowed. Any characters except a leading colon (:),
- digits, comma (,), ASCII minus (-), ASCII plus (+), and
- NUL bytes are allowed. Alternatively, a designation can
- be surrounded by angle brackets < and >; in this case,
- the designation can contain any characters other than >
+ locale. Upper- and lowercase letters are explicitly
+ allowed. Any characters except a leading colon (:),
+ digits, comma (,), ASCII minus (-), ASCII plus (+), and
+ NUL bytes are allowed. Alternatively, a designation can
+ be surrounded by angle brackets < and >; in this case,
+ the designation can contain any characters other than >
and NUL.
- offset Indicates the value one must add to the local time to
+ offset Indicates the value one must add to the local time to
arrive at Coordinated Universal Time. The offset has the
form:
hh[:mm[:ss]]
The minutes (mm) and seconds (ss) are optional. The hour
- (hh) is required and may be a single digit. The offset
- following std is required. If no offset follows dst,
- daylight saving time is assumed to be one hour ahead of
+ (hh) is required and may be a single digit. The offset
+ following std is required. If no offset follows dst,
+ daylight saving time is assumed to be one hour ahead of
standard time. One or more digits may be used; the value
is always interpreted as a decimal number. The hour must
- be between zero and 24, and the minutes (and seconds) -
- if present - between zero and 59. If preceded by a "-",
- the time zone shall be east of the Prime Meridian;
- otherwise it shall be west (which may be indicated by an
- optional preceding "+".
+ be between zero and 24, and the minutes (and seconds) –
+ if present – between zero and 59. If preceded by a “-”,
+ the time zone shall be east of the Prime Meridian;
+ otherwise it shall be west (which may be indicated by an
+ optional preceding “+”.
rule Indicates when to change to and back from daylight saving
time. The rule has the form:
date/time,date/time
- where the first date describes when the change from
- standard to daylight saving time occurs and the second
- date describes when the change back happens. Each time
- field describes when, in current local time, the change
+ where the first date describes when the change from
+ standard to daylight saving time occurs and the second
+ date describes when the change back happens. Each time
+ field describes when, in current local time, the change
to the other time is made. Daylight saving is assumed to
be in effect all year if it begins January 1 at 00:00 and
- ends December 31 at 24:00 plus the difference between
- daylight saving and standard time, leaving no room for
+ ends December 31 at 24:00 plus the difference between
+ daylight saving and standard time, leaving no room for
standard time in the calendar.
The format of date is one of the following:
- Jn The Julian day n (1 <= n <= 365). Leap days are
- not counted; that is, in all years - including
- leap years - February 28 is day 59 and March 1 is
- day 60. It is impossible to explicitly refer to
- the occasional February 29.
+ Jn The Julian day n (1 ≤ n ≤ 365). Leap days are not
+ counted; that is, in all years – including leap
+ years – February 28 is day 59 and March 1 is day
+ 60. It is impossible to explicitly refer to the
+ occasional February 29.
- n The zero-based Julian day (0 <= n <= 365). Leap
- days are counted, and it is possible to refer to
+ n The zero-based Julian day (0 ≤ n ≤ 365). Leap
+ days are counted, and it is possible to refer to
February 29.
- Mm.n.d The d'th day (0 <= d <= 6) of week n of month m of
- the year (1 <= n <= 5, 1 <= m <= 12, where week 5
- means "the last d day in month m" which may occur
- in either the fourth or the fifth week). Week 1
- is the first week in which the d'th day occurs.
+ Mm.n.d The d'th day (0 ≤ d ≤ 6) of week n of month m of
+ the year (1 ≤ n ≤ 5, 1 ≤ m ≤ 12, where week 5
+ means “the last d day in month m” which may occur
+ in either the fourth or the fifth week). Week 1
+ is the first week in which the d'th day occurs.
Day zero is Sunday.
- The time has the same format as offset except that the
- hours part of time can range from -167 through 167; this
- allows for unusual rules such as "the Saturday before the
- first Sunday of March". The default, if time is not
+ The time has the same format as offset except that the
+ hours part of time can range from -167 through 167; this
+ allows for unusual rules such as “the Saturday before the
+ first Sunday of March”. The default, if time is not
given, is 02:00:00.
Here are some examples of TZ values that directly specify the timezone.
- EST5 stands for US Eastern Standard Time (EST), 5 hours behind UT,
+ EST5 stands for US Eastern Standard Time (EST), 5 hours behind UT,
without daylight saving.
<+12>-12<+13>,M11.1.0,M1.2.1/147
stands for Fiji time, 12 hours ahead of UT, springing forward on
- November's first Sunday at 02:00, and falling back on January's
- second Monday at 147:00 (i.e., 03:00 on the first Sunday on or
- after January 14). The abbreviations for standard and daylight
- saving time are "+12" and "+13".
+ November's first Sunday at 02:00, and falling back on January's
+ second Monday at 147:00 (i.e., 03:00 on the first Sunday on or
+ after January 14). The abbreviations for standard and daylight
+ saving time are “+12” and “+13”.
IST-2IDT,M3.4.4/26,M10.5.0
- stands for Israel Standard Time (IST) and Israel Daylight Time
- (IDT), 2 hours ahead of UT, springing forward on March's fourth
- Thursday at 26:00 (i.e., 02:00 on the first Friday on or after
+ stands for Israel Standard Time (IST) and Israel Daylight Time
+ (IDT), 2 hours ahead of UT, springing forward on March's fourth
+ Thursday at 26:00 (i.e., 02:00 on the first Friday on or after
March 23), and falling back on October's last Sunday at 02:00.
<-04>4<-03>,J1/0,J365/25
- stands for permanent daylight saving time, 3 hours behind UT
- with abbreviation "-03". There is a dummy fall-back transition
- on December 31 at 25:00 daylight saving time (i.e., 24:00
- standard time, equivalent to January 1 at 00:00 standard time),
- and a simultaneous spring-forward transition on January 1 at
- 00:00 standard time, so daylight saving time is in effect all
+ stands for permanent daylight saving time, 3 hours behind UT
+ with abbreviation “-03”. There is a dummy fall-back transition
+ on December 31 at 25:00 daylight saving time (i.e., 24:00
+ standard time, equivalent to January 1 at 00:00 standard time),
+ and a simultaneous spring-forward transition on January 1 at
+ 00:00 standard time, so daylight saving time is in effect all
year and the initial <-04> is a placeholder.
<-03>3<-02>,M3.5.0/-2,M10.5.0/-1
- stands for time in western Greenland, 3 hours behind UT, where
- clocks follow the EU rules of springing forward on March's last
- Sunday at 01:00 UT (-02:00 local time, i.e., 22:00 the previous
- day) and falling back on October's last Sunday at 01:00 UT
- (-01:00 local time, i.e., 23:00 the previous day). The
- abbreviations for standard and daylight saving time are "-03"
- and "-02".
+ stands for time in western Greenland, 3 hours behind UT, where
+ clocks follow the EU rules of springing forward on March's last
+ Sunday at 01:00 UT (-02:00 local time, i.e., 22:00 the previous
+ day) and falling back on October's last Sunday at 01:00 UT
+ (-01:00 local time, i.e., 23:00 the previous day). The
+ abbreviations for standard and daylight saving time are “-03”
+ and “-02”.
- If TZ specifies daylight saving time but does not specify a rule, and
- the optional tzfile(5)-format file posixrules is present in the system
- time conversion information directory, the rules in posixrules are
- used, with the posixrules standard and daylight saving time offsets
- from UT replaced by those specified by the offset values in TZ.
- However, the posixrules file is obsolete: if it is present it is only
- for backward compatibility, and it does not work reliably. Therefore,
+ If TZ specifies daylight saving time but does not specify a rule, and
+ the optional tzfile(5)-format file posixrules is present in the system
+ time conversion information directory, the rules in posixrules are
+ used, with the posixrules standard and daylight saving time offsets
+ from UT replaced by those specified by the offset values in TZ.
+ However, the posixrules file is obsolete: if it is present it is only
+ for backward compatibility, and it does not work reliably. Therefore,
if a TZ string directly specifies a timezone with daylight saving time,
it should specify the daylight saving rules explicitly.
- For compatibility with System V Release 3.1, a semicolon (;) may be
- used to separate the rule from the rest of the specification; this is
+ For compatibility with System V Release 3.1, a semicolon (;) may be
+ used to separate the rule from the rest of the specification; this is
an extension to POSIX.
- The tzfree function frees a timezone object tz, which should have been
- successfully allocated by tzalloc. This invalidates any tm_zone
+ The tzfree function frees a timezone object tz, which should have been
+ successfully allocated by tzalloc. This invalidates any tm_zone
pointers that tz was used to set.
The tzset function acts like tzalloc(getenv("TZ")), except it saves any
- resulting timezone object into internal storage that is accessed by
- localtime, localtime_r, and mktime. The anonymous shared timezone
- object is freed by the next call to tzset. If the implied call to
- getenv fails, tzset acts like tzalloc(nullptr); if the implied call to
+ resulting timezone object into internal storage that is accessed by
+ localtime, localtime_r, and mktime. The anonymous shared timezone
+ object is freed by the next call to tzset. If the implied call to
+ getenv fails, tzset acts like tzalloc(nullptr); if the implied call to
tzalloc fails, tzset falls back on UT.
- As a side effect, the tzset function sets some external variables if
+ As a side effect, the tzset function sets some external variables if
the platform defines them. It sets tzname[0] and tzname[1] to pointers
- to strings that are time zone abbreviations to be used with standard
- and daylight saving time, respectively. It also sets timezone to be
+ to strings that are time zone abbreviations to be used with standard
+ and daylight saving time, respectively. It also sets timezone to be
the number of seconds that standard time is west of the Prime Meridian,
- and daylight to be zero if daylight saving time is never in effect,
+ and daylight to be zero if daylight saving time is never in effect,
non-zero otherwise.
RETURN VALUE
- If successful, the tzalloc function returns a nonnull pointer to the
- newly allocated object. Otherwise, it returns a null pointer and sets
- errno.
+ If successful, the tzalloc function returns a nonnull pointer to the
+ newly allocated object. Otherwise, it returns a null pointer and sets
+ errno. The tzfree function does not modify errno.
ERRORS
EOVERFLOW
- TZ directly specifies time conversion information, and contains
+ TZ directly specifies time conversion information, and contains
an integer out of machine range or a time zone abbreviation that
is too long for this platform.
- The tzalloc function may also fail and set errno for any of the errors
+ The tzalloc function may also fail and set errno for any of the errors
specified for the routines access(2), close(2), malloc(3), open(2), and
read(2).
@@ -214,7 +219,7 @@ FILES
/usr/share/zoneinfo/posixrules default DST rules (obsolete)
/usr/share/zoneinfo/GMT for UTC leap seconds
- If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from
+ If /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from
/usr/share/zoneinfo/GMT0 if present.
SEE ALSO
@@ -223,11 +228,11 @@ SEE ALSO
NOTES
Portable code should not rely on the contents of the external variables
tzname, timezone and daylight as their contents are unspecified (and do
- not make sense in general) when a geographical TZ is used. In
+ not make sense in general) when a geographical TZ is used. In
multithreaded applications behavior is undefined if one thread accesses
- one of these variables while another thread invokes tzset. A future
- version of POSIX is planned to remove these variables; callers can
- instead use the tm_gmtoff and tm_zone members of struct tm, or use
+ one of these variables while another thread invokes tzset. A future
+ version of POSIX is planned to remove these variables; callers can
+ instead use the tm_gmtoff and tm_zone members of struct tm, or use
strftime with "%z" or "%Z".
Time Zone Database newtzset(3)