title: In golang, Time.Format() removes trailing zeros from fractional part
body: <p>How can I prevent go's Time.Format() from removing trailing zeros from fractional part? I have following unit tests that fails. </p>
  
  <pre class="lang-golang prettyprint-override"><code>package main
  
  import (
      "testing"
      "time"
  )
  
  func TestTimeFormatting(t *testing.T) {
      timestamp := time.Date(2017, 1,2, 3, 4, 5, 600000*1000, time.UTC)
      timestamp_string := timestamp.Format("2006-01-02T15:04:05.999-07:00")
      expected := "2017-01-02T03:04:05.600+00:00"
  
      if expected != timestamp_string {
          t.Errorf("Invalid timestamp formating, expected %v, got %v", expected, timestamp_string)
      }
  }
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>$ go test
  --- FAIL: TestTimeFormatting (0.00s)
      main_test.go:14: Invalid timestamp formating, expected 2017-01-02T03:04:05.600+00:00, got 2017-01-02T03:04:05.6+00:00
  FAIL
  exit status 1
  FAIL    _/home/sasa/Bugs/go-formatter   0.001s
  </code></pre>
  
  <p>Any idea how to solve this?</p>