Skip to content

Commit

Permalink
Normative: Change the hourCycle default logic (#758)
Browse files Browse the repository at this point in the history
While hour12 is either true or false, let hourCycle to be either 'h12' or 'h23' but not 'h11' nor 'h24'.

The current logic is not reasonable. We see no region in the CLDR use h11 nor h24 hour cycle as default. 
While we set a hour12: true on a 24 hour system region (which use 0:00 - 23:59), we should set to h12 instead of h11

Do not perform the starnge logic of setting default hourCycle based on both hour12 and the defaultHourCycle while hour12 is true or false. Instead, only depends on hour12 to set it to h12 or h23. 

Address #402

Co-authored-by: Shane F. Carr <[email protected]>
Co-authored-by: Ujjwal Sharma <[email protected]>
Co-authored-by: André Bargull <[email protected]>
  • Loading branch information
4 people authored Sep 27, 2023
1 parent e25c455 commit 2f002b2
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions spec/datetimeformat.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,14 @@ <h1>
1. Set _dateTimeFormat_.[[NumberingSystem]] to _r_.[[nu]].
1. Let _dataLocale_ be _r_.[[dataLocale]].
1. Let _dataLocaleData_ be _localeData_.[[&lt;_dataLocale_&gt;]].
1. Let _hcDefault_ be _dataLocaleData_.[[hourCycle]].
1. If _hour12_ is *true*, then
1. If _hcDefault_ is *"h11"* or *"h23"*, let _hc_ be *"h11"*. Otherwise, let _hc_ be *"h12"*.
1. Let _hc_ be _dataLocaleData_.[[hourCycle12]].
1. Else if _hour12_ is *false*, then
1. If _hcDefault_ is *"h11"* or *"h23"*, let _hc_ be *"h23"*. Otherwise, let _hc_ be *"h24"*.
1. Let _hc_ be _dataLocaleData_.[[hourCycle24]].
1. Else,
1. Assert: _hour12_ is *undefined*.
1. Let _hc_ be _r_.[[hc]].
1. If _hc_ is *null*, set _hc_ to _hcDefault_.
1. If _hc_ is *null*, set _hc_ to _dataLocaleData_.[[hourCycle]].
1. Set _dateTimeFormat_.[[HourCycle]] to _hc_.
1. Let _timeZone_ be ? Get(_options_, *"timeZone"*).
1. If _timeZone_ is *undefined*, then
Expand Down Expand Up @@ -257,6 +256,12 @@ <h1>Internal slots</h1>
<li>
[[LocaleData]].[[&lt;_locale_&gt;]].[[hourCycle]] must be a String value equal to *"h11"*, *"h12"*, *"h23"*, or *"h24"*.
</li>
<li>
[[LocaleData]].[[&lt;_locale_&gt;]].[[hourCycle12]] must be a String value equal to *"h11"* or *"h12"*.
</li>
<li>
[[LocaleData]].[[&lt;_locale_&gt;]].[[hourCycle24]] must be a String value equal to *"h23"* or *"h24"*.
</li>
<li>
[[LocaleData]].[[&lt;_locale_&gt;]] must have a [[formats]] field. This [[formats]] field must be a Record with [[&lt;_calendar_&gt;]] fields for all calendar values _calendar_. The value of this field must be a list of records, each of which has a subset of the fields shown in <emu-xref href="#table-datetimeformat-components"></emu-xref>, where each field must have one of the values specified for the field in <emu-xref href="#table-datetimeformat-components"></emu-xref>. Multiple records in a list may use the same subset of the fields as long as they have different values for the fields. The following subsets must be available for each locale:
<ul>
Expand Down

0 comments on commit 2f002b2

Please sign in to comment.