title: Go time comparison
body: <p>I'm trying to create simple function just to change time zone of a time to another (Lets assume UTC to +0700 WIB). <a href="https://play.golang.org/p/IlDpaixE10P" rel="nofollow noreferrer">Here</a> is the source code. I have 2 functions, first <code>GenerateWIB</code> which will change just your time zone into +0700 WIB with same datetime. Second is <code>GenerateUTC</code> which will change given time's timezone into <code>UTC</code>. <code>GenerateUTC</code> works perfectly while another is not.</p>
  
  <pre><code>expect := time.Date(2016, 12, 12, 1, 2, 3, 4, wib)
  t1 := time.Date(2016, 12, 12, 1, 2, 3, 4, time.UTC)
  res := GenerateWIB(t1)
  if res != expect {
      fmt.Printf("WIB Expect %+v, but get %+v", expect, res)
  }
  </code></pre>
  
  <p>The <code>res != expect</code> always fullfilled with this result.</p>
  
  <pre><code>WIB Expect 2016-12-12 01:02:03.000000004 +0700 WIB, but get 2016-12-12 01:02:03.000000004 +0700 WIB
  </code></pre>
  
  <p>But it is the same time right? Did i miss something?</p>