demo 1 func getTodaySurplusSecond1() (int64,error) { layout := "2006-01-02" loc, _ := time.LoadLocation("Asia/Shanghai") t, err := time.ParseInLocation(layout, time.Now().Format(layout), loc) if err != nil { return 0, err } return int64(86400 - (time.Now().Unix() - t.Unix())), nil } Demo2 func getTodaySurplusSecond2() int { var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海 timeTemplate := "2006-01-02 15:04:05" timeStr := time.Now().Format("2006-01-02") now_time_str := time.Now().In(cstSh).Format(timeTemplate) today_end_time_str := timeStr + " 23:59:59" formatTime1,_:=time.Parse(timeTemplate,now_time_str) formatTime2,_:=time.Parse(timeTemplate,today_end_time_str) t1 := formatTime1.Unix() t2 := formatTime2.Unix() return t2-t1 }