title: Format Local DateTime with appropriate Local DST-aware Timezone (eg. PST or PDT) depending on time of year
body: <p>Given a <em>Local</em> DateTime value on a computer configured for PST (which will implicitly change to PDT on March 10th when DST kicks in), how can one obtain a string including the appropriate <em>timezone</em> - eg. PST/PDT, not offset! - in the output?</p>
  
  <pre><code>DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ???")
  </code></pre>
  
  <p>Expected output strings, eg:</p>
  
  <pre><code>"2019-02-09 13:04:22 PST"  // right after lunch today
  "2019-04-09 13:04:22 PDT"  // right after lunch in two months
  </code></pre>
  
  <p>The <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings" rel="nofollow noreferrer">MSDN DateTime Custom Format Strings</a> page shows examples of explicitly hard-coding "PST" into the output, which will be wrong half the year and/or when the local TZ is changed. Computers and people move, so hard-coding TZ values is simply 'not appropriate'.</p>
  
  <p>Preferably this can be done with <em>just</em> a Format String, allowing DateTime values to be supplied until the rendering/to-string phase - although there does not appear to be a 'ZZZ' format. I've specified 'Local' DateTime Kind to, hopefully, reduce some additional quirks..</p>