title: Surprising UTC offset reported by System.DateTimeOffset instances for dates before 19 Nov 1883
body: <p>Note: For convenience, PowerShell is used to demonstrate the behavior, but the question is about the behavior of the <a href="https://docs.microsoft.com/en-us/dotnet/api/system.datetimeoffset" rel="nofollow noreferrer"><code>System.DateTimeOffset</code></a> .NET type.</p>
  
  <p>Note: As <a href="https://stackoverflow.com/users/634824/matt-johnson">Matt Johnson</a> points out, the behavior in question <strong>only happens on <em>Unix-like platforms</em></strong> (macOS, Linux, using .NET Core).</p>
  
  <p>Seemingly, when <code>System.DateTimeOffset</code> converts a local date, the resulting <strong>time-zone offset (offset from UTC) differs for dates before 19 Nov 1883</strong>.</p>
  
  <p>Consider the following PowerShell command:</p>
  
  <pre><code>([datetime] '1883-11-18'), ([datetime] '1883-11-19') |
    ForEach-Object { ([datetimeoffset] $_).Offset.ToString() }
  </code></pre>
  
  <p>which, when invoked in the <a href="https://en.wikipedia.org/wiki/Eastern_Time_Zone" rel="nofollow noreferrer">Eastern Time Zone</a> yields:</p>
  
  <pre><code>-04:57:00
  -05:00:00
  </code></pre>
  
  <p>(DST (daylight-saving time) didn't come into play until 1918.)</p>
  
  <p>I suspect that this is related to the following, excerpted <a href="https://en.wikipedia.org/wiki/International_Meridian_Conference" rel="nofollow noreferrer">from Wikipedia</a>, emphasis added:</p>
  
  <blockquote>
    <p>[...] had brought the US railway companies to an agreement which led to <strong>standard railway time</strong> being introduced at <strong>noon on 18 November 1883</strong> across the nation.</p>
  </blockquote>
  
  <ul>
  <li><p>Can anyone confirm this and provide more information?</p></li>
  <li><p>Why, specifically, did the offset change by 3 minutes?</p></li>
  </ul>
  
  <p><a href="https://docs.microsoft.com/en-us/search/index?search=1883&amp;scope=.NET" rel="nofollow noreferrer">Searching for <code>1883</code> in the entire .NET documentation</a> yields just the following, <a href="https://docs.microsoft.com/en-us/dotnet/standard/datetime/saving-and-restoring-time-zones" rel="nofollow noreferrer">passing reference</a>:</p>
  
  <blockquote>
    <p>[...] the U.S. Eastern Standard Time zone from 1883 to 1917, before the introduction of daylight saving time in the United States</p>
  </blockquote>