From d386fa92de03eb9c7aab123962fa93332301927a Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 18 Nov 2024 17:23:07 -0800 Subject: [PATCH 1/5] Create option `timezone` as Proposed REQUIRED option This still has the ABNF for time zone ID, which should disappear as soon as I can replace it with something formal. --- spec/registry.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/spec/registry.md b/spec/registry.md index d0921e962b..5ba02413fc 100644 --- a/spec/registry.md +++ b/spec/registry.md @@ -1109,6 +1109,31 @@ the functions `:datetime` and `:time`: - `true` - `false` +The following _option_ and its values will be REQUIRED to be available on +the functions `:datetime`, `:date`, and `:time`. +This option currently has a Maturity Level of **Proposed**. + +- `timezone` + - A valid time zone identifier + (see [BCP175](https://www.rfc-editor.org/bpc/bpc175)) + - `local` + - `UTC` + +A time zone identifier is well-formed if it matches `tzId` in the following ABNF: +```abnf +tzId = tzPath / tzEtc +tzPath = tzPart 1*("/" tzPart) +tzPart = tzWord *("_" tzWord) +tzWord = (%x41-5A) *(%x61-7A) ; Uppercase ASCII letter followed by lowercase letters +tzEtc = ("Etc/" ("UTC" / "GMT" (("+" / "-") 1*2DIGIT)) +``` + +> [!NOTE] +> The value `local` permits a _message_ to convert a date/time value +> into a [floating](https://www.w3.org/TR/timezone/#floating) time value +> (sometimes called a _plain_ or _local_ time value) by removing +> the association with a specific time zone. + > [!NOTE] > These options do not have default values because they are only to be used > as overrides for locale-and-value dependent implementation-defined defaults. From 3b03e17d14a040461fda54834411698219cf103e Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Tue, 19 Nov 2024 07:03:51 -0800 Subject: [PATCH 2/5] Update spec/registry.md Co-authored-by: Mark Davis --- spec/registry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/registry.md b/spec/registry.md index 5ba02413fc..4ad2ca95dc 100644 --- a/spec/registry.md +++ b/spec/registry.md @@ -1125,7 +1125,7 @@ tzId = tzPath / tzEtc tzPath = tzPart 1*("/" tzPart) tzPart = tzWord *("_" tzWord) tzWord = (%x41-5A) *(%x61-7A) ; Uppercase ASCII letter followed by lowercase letters -tzEtc = ("Etc/" ("UTC" / "GMT" (("+" / "-") 1*2DIGIT)) +tzEtc = "Etc/GMT" ("+" / "-") 1*2DIGIT ``` > [!NOTE] From ad3e2c93fa235c1e0528e4ac2a452174237cfac4 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Tue, 19 Nov 2024 07:05:07 -0800 Subject: [PATCH 3/5] Update spec/registry.md Co-authored-by: Eemeli Aro --- spec/registry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/registry.md b/spec/registry.md index 4ad2ca95dc..d75d145be2 100644 --- a/spec/registry.md +++ b/spec/registry.md @@ -1113,7 +1113,7 @@ The following _option_ and its values will be REQUIRED to be available on the functions `:datetime`, `:date`, and `:time`. This option currently has a Maturity Level of **Proposed**. -- `timezone` +- `timeZone` - A valid time zone identifier (see [BCP175](https://www.rfc-editor.org/bpc/bpc175)) - `local` From 63270de31622ffc489a13a51f555af22974bdecf Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Tue, 19 Nov 2024 08:51:00 -0800 Subject: [PATCH 4/5] Address comments about ABNF etc. --- spec/registry.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/spec/registry.md b/spec/registry.md index d75d145be2..dead8527d5 100644 --- a/spec/registry.md +++ b/spec/registry.md @@ -1115,19 +1115,12 @@ This option currently has a Maturity Level of **Proposed**. - `timeZone` - A valid time zone identifier - (see [BCP175](https://www.rfc-editor.org/bpc/bpc175)) + (see [TZDB](https://www.iana.org/time-zones) + and [LDML](https://www.unicode.org/reports/tr35/tr35-dates.html#Time_Zone_Names) + for information on identifiers) - `local` - `UTC` -A time zone identifier is well-formed if it matches `tzId` in the following ABNF: -```abnf -tzId = tzPath / tzEtc -tzPath = tzPart 1*("/" tzPart) -tzPart = tzWord *("_" tzWord) -tzWord = (%x41-5A) *(%x61-7A) ; Uppercase ASCII letter followed by lowercase letters -tzEtc = "Etc/GMT" ("+" / "-") 1*2DIGIT -``` - > [!NOTE] > The value `local` permits a _message_ to convert a date/time value > into a [floating](https://www.w3.org/TR/timezone/#floating) time value From 5bb9d1f238b5d0773fb4402435f15fbb89270b8d Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Wed, 20 Nov 2024 06:52:15 -0800 Subject: [PATCH 5/5] Address "proposed" --- spec/registry.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/spec/registry.md b/spec/registry.md index 56f2f7d6a4..0bb983cb37 100644 --- a/spec/registry.md +++ b/spec/registry.md @@ -1114,9 +1114,19 @@ the functions `:datetime` and `:time`: - `true` - `false` -The following _option_ and its values will be REQUIRED to be available on +The following _options_ and their values are RECOMMENDED to be available on the functions `:datetime`, `:date`, and `:time`. -This option currently has a Maturity Level of **Proposed**. + +- `calendar` + - valid [Unicode Calendar Identifier](https://cldr-smoke.unicode.org/spec/main/ldml/tr35.html#UnicodeCalendarIdentifier) +- `numberingSystem` + - valid [Unicode Number System Identifier](https://cldr-smoke.unicode.org/spec/main/ldml/tr35.html#UnicodeNumberSystemIdentifier) + +The following _option_ and its values are **Proposed** for +inclusion in the next release of this specification but have not yet been +finalized. +If accepted, implementations could be REQUIRED to make this _option_ +available in the functions `:datetime`, `:date`, and `:time`. - `timeZone` - A valid time zone identifier @@ -1131,13 +1141,3 @@ This option currently has a Maturity Level of **Proposed**. > into a [floating](https://www.w3.org/TR/timezone/#floating) time value > (sometimes called a _plain_ or _local_ time value) by removing > the association with a specific time zone. - -The following _options_ and their values are RECOMMENDED to be available on -the functions `:datetime`, `:date`, and `:time`. - -- `calendar` - - valid [Unicode Calendar Identifier](https://cldr-smoke.unicode.org/spec/main/ldml/tr35.html#UnicodeCalendarIdentifier) -- `numberingSystem` - - valid [Unicode Number System Identifier](https://cldr-smoke.unicode.org/spec/main/ldml/tr35.html#UnicodeNumberSystemIdentifier) - -