1.月を現在から相対的に指定する
月の指定:time.Month(month-i)
年は、自動で処理される
2.code
months := 5; t := time.Now() year := t.Year() month:= int(t.Month()) day := t.Day() for i := 0; i < months; i++ { _time := time.Date(year, time.Month(month-i), day, 0, 0, 0, 0, time.Local) fmt.Printf("_time\t: %v\n", _time) }
3.結果
# date Wed Jan 5 13:54:31 JST 2022 # ./a.out _time : 2022-01-05 00:00:00 +0900 JST _time : 2021-12-05 00:00:00 +0900 JST _time : 2021-11-05 00:00:00 +0900 JST _time : 2021-10-05 00:00:00 +0900 JST _time : 2021-09-05 00:00:00 +0900 JST
4.時刻地域指定
local, _ := time.LoadLocation("Asia/Tokyo") _time := time.Date(year, time.Month(month-i), day, 0, 0, 0, 0, local)