为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
PIPIONE 2023-03-21 10:10:35
我正在寻找一种从 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,我觉得很迂回,不太喜欢。有没有更好的方法来编写这段代码?
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

另一种解决方案是将当前时间截断到一天的开始,然后用于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))

}


查看完整回答
反对 回复 2023-03-21
  • 1 回答
  • 0 关注
  • 56 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信