title: Using freezegun, why do pytz.utc and utcnow() output different datetimes?
body: <p>I'm puzzled why a function that freezes time with freezegun outputs different UTC times depending on whether <code>datetime.datetime.utcnow()</code> is called, or <code>datetime.datetime.now(pytz.utc)</code>. I'm not saying it's broken, just that I don't understand why, and would like to know!</p>
  
  <p>eg, using this function:</p>
  
  <pre><code>@freeze_time("2012-01-14 03:21:34", tz_offset=-4)
  def test():
      print("utcnow(): %s" % datetime.datetime.utcnow())
      print("pytz.utc: %s" % datetime.datetime.now(pytz.utc))
  </code></pre>
  
  <p>the output is:</p>
  
  <pre><code>utcnow(): 2012-01-14 03:21:34
  pytz.utc: 2012-01-13 23:21:34+00:00
  </code></pre>
  
  <p>I guess the first is a naive datetime, but why are they different times? </p>
  
  <p>(Ultimately why I want to know: if I'm using freezegun in my tests, and I use pytz to generate times in my code being tested, I want to know what its 'correct' behaviour should be.)</p>