Calculating Time Differences with Time.Time Objects
In Golang, time discrepancies between two time.Time objects can be easily obtained using the Time.Sub() function. The result of this operation is a time.Duration value.
By default, the duration is formatted intelligently, as seen in the following example:
import ( "fmt" "time" ) func main() { t1 := time.Now() t2 := t1.Add(time.Second * 341) fmt.Println(t1) fmt.Println(t2) diff := t2.Sub(t1) fmt.Println(diff) }
Output:
2009-11-10 23:00:00 +0000 UTC 2009-11-10 23:05:41 +0000 UTC 5m41s
For durations shorter than a day, you can use the Time.Time object constructor and the Time.Format() method to obtain the HH:mm:ss format:
out := time.Time{}.Add(diff) fmt.Println(out.Format("15:04:05"))
Output:
00:05:41
Note that this method only applies to time differences within 24 hours. For larger differences, you may need to consider more complex solutions, as discussed in this related thread:
[golang time.Since() with months and years](https://github.com/golang/go/issues/17461)
The above is the detailed content of How Can I Efficiently Calculate and Format Time Differences Between Two time.Time Objects in Go?. For more information, please follow other related articles on the PHP Chinese website!