我正在寻找一种从 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))
}
- 1 回答
- 0 关注
- 74 浏览
添加回答
举报
0/150
提交
取消