Wall-clock time can jump when it is corrected, so subtracting two wall times can give a negative duration. In Go, time.Now() carries a monotonic reading too, and Sub uses it when both values have one.