如何仅提取时间作为持续时间

我正在寻找一种从 time.Time 中提取时间作为 time.Duration 的方法。


例如,“2022-11-25 10:07:40.1242844 +0900 JST”(time.Time) 到“10h7m40s”(time.Duration)


func main() {

   currentTime := time.Now()

   d, err := time.ParseDuration(currentTime.Format("15h04m05s"))

   if err != nil {

      fmt.Println(err)

   }

   fmt.Print(d.String())

// 9h57m54s

}


这段代码能用,但是把time转成string,然后转成duration,我觉得很迂回,不太喜欢。有没有更好的方法来编写这段代码?


PIPIONE
浏览 75回答 1
1回答

白板的微信

另一种解决方案是将当前时间截断到一天的开始,然后用于time.Since()返回 a Duration:import (  "fmt"  "time")func main() {  now := time.Now()  today := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())  fmt.Println(time.Since(today))}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go