3月29日と書いて有るが前の月よりも長いときで且つ前の月にない日付のときに AddDate
で -1ヶ月するときの挙動についてである.
-1ヶ月してないときは月初に丸められるっぽい.
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Date(2022, 3, 1, 0, 0, 0, 0, time.UTC).AddDate(0, -1, 0))
// 2022-02-01 00:00:00 +0000 UTC
fmt.Println(time.Date(2022, 3, 29, 0, 0, 0, 0, time.UTC).AddDate(0, -1, 0))
// 2022-03-01 00:00:00 +0000 UTC
fmt.Println(time.Date(2022, 12, 31, 0, 0, 0, 0, time.UTC).AddDate(0, -1, 0))
// 2022-12-01 00:00:00 +0000 UTC
}