如何不舍入持续时间

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 )
}

礼貌:https://gobyexample.com/epoch

只需使用Seconds()方法:

package main

import (
    "fmt"
    "time"
)

func main() {
    elapsedTime := 1379 * time.Millisecond
    fmt.Println(elapsedTime) //->1.379s

    secs := elapsedTime.Seconds()
    fmt.Println(secs)
}

playground.