golang time设置年份

最近做linux系统日志解析的时候碰到了这种格式Apr 30 16:09:47 ...。没错,没有年份!!!因此就有了string转为time.Time后设置年份的需求。

对我自己的情况,我是这么解决的。

//time.Stamp "Jan _2 15:04:05"
func parseTime(timeStr string) (time.Time, error) {
	t, err := time.Parse(time.Stamp, timeStr)
	return t.AddDate(time.Now().Year(), 0, 0), err
}

类似,对于其他情况可以这么干

func timeSetYear(t *time.Time,year int){
	t.AddDate(year - t.Year(),0,0)
}
03-31 00:29