Compare Time
Problem
I forgot to be multipled by “time.Second”, when I compared the elapsed time with which I specific, such as sndT.Sub(fstT) > time.Duration(10)
.
Which you can know how to be occured
package main
import (
"log"
"time"
)
func main() {
fstT := time.Now()
log.Println("fstT: ", fstT)
sndT := time.Now().Add(time.Duration(5) * time.Second)
log.Println("sndT: ", sndT)
if sndT.Sub(fstT) > time.Duration(10) {
log.Println("time.Duration(10) is ", time.Duration(10), ", unit is 'ns', this is why you pass through this condition.")
}
if !(sndT.Sub(fstT) > time.Duration(10)*time.Second) {
log.Println("You have to be multiplied by 'time.Second' to become second(s) unit.")
}
}
Output
2009/11/10 23:00:00 fstT: 2009-11-10 23:00:00 +0000 UTC m=+0.000000001
2009/11/10 23:00:00 sndT: 2009-11-10 23:00:05 +0000 UTC m=+5.000000001
2009/11/10 23:00:00 time.Duration(10) is 10ns , unit is 'ns', this is why you pass through this condition.
2009/11/10 23:00:00 You have to be multiplied by 'time.Second' to become second(s) unit.