Why I am getting wrong answers in Date function in golang
<p>In the following code,</p>

<ul>
<li>t1 is time on 62 days after the date 1970/1/1 (yy/mm/dd)</li>
<li>t2 is time on 63 days after the date 1970/1/1 (yy/mm/dd)</li>
</ul>

<hr>

<pre><code>package main

import (
    "fmt"
    "time"
)

func main() {

    t1 := time.Date(0, 0, 62, 0, 0, 0, 0, time.UTC).AddDate(1970, 1, 1)
    t2 := time.Date(0, 0, 63, 0, 0, 0, 0, time.UTC).AddDate(1970, 1, 1)

    fmt.Println("Time1:  ", t1)
    fmt.Println("Time2:  ", t2)
}
</code></pre>

<p>If t1 is:</p>

<pre><code>Time1: 1970-03-04 00:00:00 +0000 UTC
</code></pre>

<p>I expect t2 to be:</p>

<pre><code>Time2: 1970-03-05 00:00:00 +0000 UTC
</code></pre>

<p>But the output is:</p>

<pre><code>Time2: 1970-03-02 00:00:00 +0000 UTC
</code></pre>

<p>What is the reason for this?</p>