go time字符串时间格式化
将一些不常用的字符串时间格式化为"2022-04-06 10:36:34"
const TimeTemplate = "2006-01-02 15:04:05"
func TestName(t *testing.T) {
tt := time.Now() //当前时间
tt.Unix() //时间戳
ts := tt.Format(constant.TimeTemplate) //time转string
fmt.Println(ts)
st, _ := time.Parse(constant.TimeTemplate, ts) //string转time
fmt.Println(st)
ads := "2022-04-03T23:59:00+08:00"
fmt.Println(RFC3339ToCSTLayout(ads))
}
func RFC3339ToCSTLayout(value string) (string, error) {
ts, err := time.ParseInLocation(time.RFC3339, value, time.Local)
if err != nil {
return "", err
}
return ts.In(time.Local).Format(constant.TimeTemplate), nil
}
在处理阿里云ECS的时间格式时,其时间格式为 2022-04-03T23:59Z ,需要截取 Z 字符串,并拼接:00+00:00为time.RFC3339格式后处理 (只能这种笨方法,有其他好方法没0.0)
因为阿里云ECS的时间格式是UTC,所以拼接是+00:00, 如果正常的时间格式则拼接+08:00