title: Swift - Timezone off by one hour / secondsFromGMT incorrect
body: <p>This should be a really simple question but I just can't seem to wrap my head around it.</p>
  
  <p>Given my timezone is EDT (GMT-4), why does 04:00 in GMT turn into 23:00 and not 00:00?</p>
  
  <pre><code>// The offset is -4 hours
  let offsetFromGMT = Calendar.current.timeZone.secondsFromGMT() / 60 / 60
  
  // 2017-03-12 04:00
  var destinationComponents = DateComponents()
  destinationComponents.timeZone = TimeZone(secondsFromGMT: 0)
  destinationComponents.year = 2017
  destinationComponents.month = 03
  destinationComponents.day = 12
  destinationComponents.hour = -offsetFromGMT // 4 hours
  
  // Why is this 2017-03-11 23:00 and not 2017-03-12 00:00?
  let date = Calendar.current.date(from: destinationComponents)!
  // Outputs 23
  Calendar.current.dateComponents([.hour], from: date).hour
  </code></pre>