timetime.Now() returns a time.Time with a monotonic reading suitable for measuring intervals; wall clock can change (NTP) — use monotonic-aware Sub for durations.
start := time.Now()
// work
elapsed := time.Since(start)
time.Sleep(2 * time.Second)
t := time.NewTimer(5 * time.Second)
<-t.C
ticker := time.NewTicker(500 * time.Millisecond)
defer ticker.Stop()
for range ticker.C {
// periodic
}
const layout = "2006-01-02 15:04:05"
t, err := time.Parse(layout, "2026-05-04 12:00:00")
s := t.Format(time.RFC3339)
Reference time is Mon Jan 2 15:04:05 MST 2006.
loc, err := time.LoadLocation("America/New_York")
t := time.Date(2026, 5, 4, 12, 0, 0, 0, loc)
Pair wall-clock limits with context.WithTimeout.