// Copyright 2020 // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package utils import ( "fmt" "time" ) // ToShortTimeFormat short string format func ToShortTimeFormat(d time.Duration) string { u := uint64(d) if u < uint64(time.Second) { switch { case u == 0: return "0" case u < uint64(time.Microsecond): return fmt.Sprintf("%.2fns", float64(u)) case u < uint64(time.Millisecond): return fmt.Sprintf("%.2fus", float64(u)/1000) default: return fmt.Sprintf("%.2fms", float64(u)/1000/1000) } } else { switch { case u < uint64(time.Minute): return fmt.Sprintf("%.2fs", float64(u)/1000/1000/1000) case u < uint64(time.Hour): return fmt.Sprintf("%.2fm", float64(u)/1000/1000/1000/60) default: return fmt.Sprintf("%.2fh", float64(u)/1000/1000/1000/60/60) } } }