go:处理时间 go中处理时间坑也挺多滴 时间转字符串 ``` func TimeToStrLong(t time.Time) string { return t.Format("2006-01-02 15:04:05") } func TimeToStrShort(t time.Time) string { return t.Format("2006-01-02") } ``` 字符串转时间(注意时区) ``` // 谨慎使用time.Parse,它会直接转成utc时间,时区不要time.LoadLocation,否则会依赖go环境 var CST = time.FixedZone("CST", 8*3600) var EST = time.FixedZone("EST", -5*3600) var EDT = time.FixedZone("EDT", -4*3600) // DatetimeStr2Time 字符串转时间, zone 为时区 func DatetimeStr2Time(strTime string, zone *time.Location) (time.Time, error) { return time.ParseInLocation("2006-01-02 15:04:05", strTime, zone) } ``` 当前本地时间 ``` // 这里返回的是本地时间 tstr := time.Now().Format("2006-01-02 15:04:05") fmt.Println(tstr) ``` 当前时间(带时区) ``` // 当前求美国东部时间(不考虑夏令时) var estZone = time.FixedZone("EST", -5*3600) tstr = time.Now().In(estZone).Format("2006-01-02 15:04:05") fmt.Println(tstr) ``` 时间戳 ``` // Timestamp2Time 十位 timestamp 转换为time func Timestamp2Time(unix int64, zone *time.Location) time.Time { return time.Unix(unix, 0).In(zone) } ``` 时间转日期(消去时分秒) ``` func TimeToDate(t time.Time, zone *time.Location) time.Time { return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, zone) } ``` 来自 大脸猫 写于 2019-04-30 11:31 -- 更新于2020-10-19 13:06 -- 0 条评论