github.com/kubeshop/testkube@v1.17.23/pkg/types/duration.go (about) 1 package types 2 3 import "time" 4 5 const DefaultDurationFormat = "15:04:05" 6 const InvalidDurationString = "invalid" 7 8 func FormatDuration(in string) string { 9 if in == "" { 10 return "" 11 } 12 duration, err := time.ParseDuration(in) 13 if err != nil { 14 return InvalidDurationString + " " + err.Error() 15 } 16 17 return FormattedDuration(duration).Format() 18 } 19 20 func FormatDurationMs(in string) int32 { 21 if in == "" { 22 return 0 23 } 24 duration, err := time.ParseDuration(in) 25 if err != nil { 26 return 0 27 } 28 29 return int32(duration / time.Millisecond) 30 } 31 32 type FormattedDuration time.Duration 33 34 func (t FormattedDuration) Format(formats ...string) string { 35 format := DefaultDurationFormat 36 if len(formats) > 0 { 37 format = formats[0] 38 } 39 40 z := time.Unix(0, 0).UTC() 41 return z.Add(time.Duration(t)).Format(format) 42 }