title: Why is the difference of two datetime.now() objects not close to 0?
body: <p>I am confused about the output of the following code:</p>
  
  <pre><code>#!/usr/bin/env python
  # -*- coding: utf-8 -*-
  
  import datetime
  import pytz
  
  local_time = datetime.datetime.now(pytz.timezone('Europe/Berlin'))
  utc_time = datetime.datetime.now(datetime.timezone.utc)
  
  print(local_time - utc_time)
  </code></pre>
  
  <p>I thought a timezone is simply an offset (depending on factors such as the date and the location with DST and changing definitions over time... so not that simple, but still an offset). So a timezone-aware datetime I thought would simply be:</p>
  
  <pre><code>utc_time == '12:34'
  + timezone is Europe/Berlin in UTC 2018-01-01 at 12:34
  =&gt; local time = (utc + local timezone) = 2018-01-01 at 13:34
  </code></pre>
  
  <p>Then I thought, the difference between two datetime objects should be equal to the difference to the UTC at the same point in time (not considering the thought-construct of timezones). </p>
  
  <p>Hence, if I execute "datetime.now" at (about) the same point in time and "assign" it to different time zones, the difference should be on the order of milliseconds that passed between the two commands.</p>
  
  <p>But it actually is <code>-1 day, 23:59:59.999982</code>.</p>