如何不舍入持续时间
How to not round durations
我正在尝试为进程的执行计时,我需要以秒为单位的值。
package main
import (
"fmt"
"time"
)
func main() {
startTime := time.Now()
time.Sleep(1379 * time.Millisecond)
elapsedTime := time.Since(startTime)
fmt.Println(elapsedTime) //->1.379s
secs := float64(elapsedTime / time.Second)
fmt.Println(secs)//->1
//desired output is: 1.379
}
我正在寻找一种让时间不被舍入的方法。
这是游乐场:https://play.golang.org/p/VLgKTpmkHPS
将时间转换为秒的纪元时间
更新:下面的代码有效吗?
package main
import (
"fmt"
"time"
)
func main() {
startTime := time.Now()
nanos := startTime.Unix()
// fmt.Println(startTime)
millis := nanos / 1000000
elapsedInsecondsT := float64(millis)/float64(1000)
fmt.Println( millis, elapsedInsecondsT )
}
只需使用Seconds()方法:
package main
import (
"fmt"
"time"
)
func main() {
elapsedTime := 1379 * time.Millisecond
fmt.Println(elapsedTime) //->1.379s
secs := elapsedTime.Seconds()
fmt.Println(secs)
}
我正在尝试为进程的执行计时,我需要以秒为单位的值。
package main
import (
"fmt"
"time"
)
func main() {
startTime := time.Now()
time.Sleep(1379 * time.Millisecond)
elapsedTime := time.Since(startTime)
fmt.Println(elapsedTime) //->1.379s
secs := float64(elapsedTime / time.Second)
fmt.Println(secs)//->1
//desired output is: 1.379
}
我正在寻找一种让时间不被舍入的方法。 这是游乐场:https://play.golang.org/p/VLgKTpmkHPS
将时间转换为秒的纪元时间
更新:下面的代码有效吗?
package main
import (
"fmt"
"time"
)
func main() {
startTime := time.Now()
nanos := startTime.Unix()
// fmt.Println(startTime)
millis := nanos / 1000000
elapsedInsecondsT := float64(millis)/float64(1000)
fmt.Println( millis, elapsedInsecondsT )
}
只需使用Seconds()方法:
package main
import (
"fmt"
"time"
)
func main() {
elapsedTime := 1379 * time.Millisecond
fmt.Println(elapsedTime) //->1.379s
secs := elapsedTime.Seconds()
fmt.Println(secs)
}