<div dir="ltr"><div><div><div>Summary: Allow fractionalSecondDigit option in Intl.DateTimeFormat. This is a small addition to enable working with precise times.<br></div><div><br>As of Firefox 84, the intention is that fractionalSecondDigits will be on by default. It has been developed by André Bargull and prototyped as a nightly feature over the last year. This feature is currently shipping on other browsers, see below.
<br><br></div>Bug: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1645107">https://bugzilla.mozilla.org/show_bug.cgi?id=1645107</a><br><br></div>Standard: <a href="https://github.com/tc39/ecma402/pull/347">https://github.com/tc39/ecma402/pull/347</a><br><br></div>DevTools bug: N/A<br><div><br>Other browsers: Chromium [1] and WebKit [2] have shipped this feature in recent releases. We have had this implemented in nightly for some time, but there was a change to the spec regarding the ordering of properties that was added a bit later. All outstanding issues are currently resolved.  <br><br><div>web-platform-tests: <a href="https://github.com/tc39/test262/commit/49eee8bf9d69e3e137e9a196f6e0906a7c6a2cd4#diff-252f7feb46d57542eded37fab15fce319cebba8635f4cd8e6ff4161296be247f">https://github.com/tc39/test262/commit/49eee8bf9d69e3e137e9a196f6e0906a7c6a2cd4#diff-252f7feb46d57542eded37fab15fce319cebba8635f4cd8e6ff4161296be247f</a> <br></div><div><br></div><div>Web Developer use case: When a developer is seeking to get a precise timestamp that does not use UTC or the browser locale, they would use this. For more use cases see the comment section in [3]. <br></div><div><br></div><div>Example: <br><div class="gmail-highlight gmail-highlight-source-js"><pre><span class="gmail-pl-k">let</span> <span class="gmail-pl-s1">t</span> <span class="gmail-pl-c1">=</span> <span class="gmail-pl-k">new</span> <span class="gmail-pl-v">Date</span><span class="gmail-pl-kos">(</span><span class="gmail-pl-s">"2019-05-20T07:00:23.123"</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">;</span>
<span class="gmail-pl-k">var</span> <span class="gmail-pl-s1">dtf</span> <span class="gmail-pl-c1">=</span> <span class="gmail-pl-k">new</span> <span class="gmail-pl-v">Intl</span><span class="gmail-pl-kos">.</span><span class="gmail-pl-c1">DateTimeFormat</span><span class="gmail-pl-kos">(</span>
   <span class="gmail-pl-s">"en"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-kos">{</span><span class="gmail-pl-c1">hour</span>: <span class="gmail-pl-s">"numeric"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-c1">minute</span>: <span class="gmail-pl-s">"numeric"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-c1">second</span>: <span class="gmail-pl-s">"numeric"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-c1">fractionalSecondDigits</span>: <span class="gmail-pl-c1">3</span><span class="gmail-pl-kos">}</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">;</span>
<span class="gmail-pl-s1">dtf</span><span class="gmail-pl-kos">.</span><span class="gmail-pl-en">format</span><span class="gmail-pl-kos">(</span><span class="gmail-pl-s1">t</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">;</span>  <span class="gmail-pl-c">// "7:00:23.123 AM" </span>
<span class="gmail-pl-s1">dtf</span><span class="gmail-pl-kos">.</span><span class="gmail-pl-en">formatToParts</span><span class="gmail-pl-kos">(</span><span class="gmail-pl-s1">t</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">;</span>
<span class="gmail-pl-c">// [{type: "hour", value: "7"},</span>
<span class="gmail-pl-c">//  {type: "literal", value: ":"}, </span>
<span class="gmail-pl-c">//  {type: "minute", value: "00"}, </span>
<span class="gmail-pl-c">//  {type: "literal", value: ":"}, </span>
<span class="gmail-pl-c">//  {type: "second", value: "23"}, </span>
<span class="gmail-pl-c">//  {type: "literal", value: "."}, </span>
<span class="gmail-pl-c">//  {type: "fractionalSecond", value: "123"}, </span>
<span class="gmail-pl-c">//  {type: "literal", value: " "}, </span>
<span class="gmail-pl-c">//  {type: "dayPeriod", value: "AM"}]</span>
<span class="gmail-pl-s1">dtf</span> <span class="gmail-pl-c1">=</span> <span class="gmail-pl-k">new</span> <span class="gmail-pl-v">Intl</span><span class="gmail-pl-kos">.</span><span class="gmail-pl-c1">DateTimeFormat</span><span class="gmail-pl-kos">(</span>
   <span class="gmail-pl-s">"en"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-kos">{</span><span class="gmail-pl-c1">hour</span>: <span class="gmail-pl-s">"numeric"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-c1">minute</span>: <span class="gmail-pl-s">"numeric"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-c1">second</span>: <span class="gmail-pl-s">"numeric"</span><span class="gmail-pl-kos">,</span> <span class="gmail-pl-c1">fractionalSecondDigits</span>: <span class="gmail-pl-c1">1</span><span class="gmail-pl-kos">}</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">;</span>
<span class="gmail-pl-s1">dtf</span><span class="gmail-pl-kos">.</span><span class="gmail-pl-en">format</span><span class="gmail-pl-kos">(</span><span class="gmail-pl-s1">t</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">)</span><span class="gmail-pl-kos">;</span>  <span class="gmail-pl-c">// "7:00:23.1 AM"<br><br></span></pre><pre><span class="gmail-pl-c"><font face="arial,sans-serif">Let me know if there are any questions or concerns,<br>Yulia</font><br></span></pre></div></div>[1]: <a href="https://groups.google.com/a/chromium.org/g/blink-dev/c/ISa0b6fOefY/m/V8Jl72VhBAAJ">https://groups.google.com/a/chromium.org/g/blink-dev/c/ISa0b6fOefY/m/V8Jl72VhBAAJ</a><br>[2]: <a href="https://trac.webkit.org/changeset/266170/webkit">https://trac.webkit.org/changeset/266170/webkit</a> <br>[3]: <a href="https://github.com/tc39/ecma402/issues/300">https://github.com/tc39/ecma402/issues/300</a></div></div>