title: Date.toLocaleString inadequacy for conversion of a date/time to universal time
body: <p>I'm trying to convert a date object to <code>UTC</code>.  Either I'm using it wrong or the <code>Date.toLocaleString</code> seems to be broken or inadequate.</p>
  <pre><code>new Date('Tue Aug 09 2022 18:43:00 GMT-0500 (Central Daylight Time)')
      .toLocaleString('en-US', {
        timeZone: &quot;UTC&quot;,
        day: &quot;2-digit&quot;,
        hour12: false,
        year: &quot;numeric&quot;,
        month: &quot;2-digit&quot;,
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit',
      })
  </code></pre>
  <p>output:</p>
  <p><code>&quot;08/09/2022, 23:43:00&quot;</code>  (A valid date/time)</p>
  <pre><code>new Date('Tue Aug 09 2022 19:43:00 GMT-0500 (Central Daylight Time)')
      .toLocaleString('en-US', {
        timeZone: &quot;UTC&quot;,
        day: &quot;2-digit&quot;,
        hour12: false,
        year: &quot;numeric&quot;,
        month: &quot;2-digit&quot;,
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit',
      })
  </code></pre>
  <p>output:</p>
  <p><code>&quot;08/10/2022, 24:43:00&quot;</code></p>
  <p>I expected it to be <code>&quot;08/10/2022, 00:43:00&quot;</code> but instead it appears to not reset the hours.</p>
  <p>I have worked around this, in the particular way I was using the result, but I would like to be able to go without the extra conditional and reset.</p>
  <pre><code>    var parts = str.match(/(\d{2})\/(\d{2})\/(\d{4}),\s(\d{2})\:(\d{2})\:(\d{2})/),
        month = parseInt(parts[1], 10),
        day = parseInt(parts[2], 10),
        year = parseInt(parts[3], 10),
        hours = parseInt(parts[4], 10),
        minutes = parseInt(parts[5], 10),
        seconds = parseInt(parts[6], 10);
  
      if (hours == 24) {
        hours = 0;
      }
  </code></pre>
  <p>Why is this happening, and how can I accomplish my goal?</p>