time.Date builds a deterministic time value from explicit parts.

fixed time A fixed time uses chosen year, month, day, clock, and location values instead of the current clock.

Fixed Times

hour
fixed_times.go
Replay: real traced execution (multi-file project)
package main

import (
	"fmt"
	"time"
)

func main() {
	var hour = 9
	start := time.Date(2026, time.May, 28, hour, 30, 0, 0, time.UTC)

	fmt.Println("year=", start.Year())
	fmt.Println("month=", start.Month())
	fmt.Println("hour=", start.Hour())
	fmt.Println("zone=", start.Location())
}
package main

import (
	"fmt"
	"time"
)

func main() {
	var hour = 14
	start := time.Date(2026, time.May, 28, hour, 30, 0, 0, time.UTC)

	fmt.Println("year=", start.Year())
	fmt.Println("month=", start.Month())
	fmt.Println("hour=", start.Hour())
	fmt.Println("zone=", start.Location())
}
package main

import (
	"fmt"
	"time"
)

func main() {
	var hour = 18
	start := time.Date(2026, time.May, 28, hour, 30, 0, 0, time.UTC)

	fmt.Println("year=", start.Year())
	fmt.Println("month=", start.Month())
	fmt.Println("hour=", start.Hour())
	fmt.Println("zone=", start.Location())
}
  1. hour ← 9, start ← time.Date(2026, time.May, 28, 9, 30, 0, 0, time.UTC)

    8func main() {9  var hour→ 9 = 9 //@hour=14, 1810  start→ time.Date(2026, time.May, 28, 9, 30, 0, 0, time.UTC) := time.Date(2026, time.May, 28, hour9, 30, 0, 0, time.UTC)1112  fmt.Println("year=", starttime.Date(2026, time.May, 28, 9, 30, 0, 0, time.UTC).Year())13  fmt.Println("month=", starttime.Date(2026, time.May, 28, 9, 30, 0, 0, time.UTC).Month())14  fmt.Println("hour=", starttime.Date(2026, time.May, 28, 9, 30, 0, 0, time.UTC).Hour())15  fmt.Println("zone=", starttime.Date(2026, time.May, 28, 9, 30, 0, 0, time.UTC).Location())16}
    outputyear= 2026
    month= May
    hour= 9
    zone= UTC
  1. hour ← 14, start ← time.Date(2026, time.May, 28, 14, 30, 0, 0, time.UTC)

    8func main() {9  var hour→ 14 = 1410  start→ time.Date(2026, time.May, 28, 14, 30, 0, 0, time.UTC) := time.Date(2026, time.May, 28, hour14, 30, 0, 0, time.UTC)1112  fmt.Println("year=", starttime.Date(2026, time.May, 28, 14, 30, 0, 0, time.UTC).Year())13  fmt.Println("month=", starttime.Date(2026, time.May, 28, 14, 30, 0, 0, time.UTC).Month())14  fmt.Println("hour=", starttime.Date(2026, time.May, 28, 14, 30, 0, 0, time.UTC).Hour())15  fmt.Println("zone=", starttime.Date(2026, time.May, 28, 14, 30, 0, 0, time.UTC).Location())16}
    outputyear= 2026
    month= May
    hour= 14
    zone= UTC
  1. hour ← 18, start ← time.Date(2026, time.May, 28, 18, 30, 0, 0, time.UTC)

    8func main() {9  var hour→ 18 = 1810  start→ time.Date(2026, time.May, 28, 18, 30, 0, 0, time.UTC) := time.Date(2026, time.May, 28, hour18, 30, 0, 0, time.UTC)1112  fmt.Println("year=", starttime.Date(2026, time.May, 28, 18, 30, 0, 0, time.UTC).Year())13  fmt.Println("month=", starttime.Date(2026, time.May, 28, 18, 30, 0, 0, time.UTC).Month())14  fmt.Println("hour=", starttime.Date(2026, time.May, 28, 18, 30, 0, 0, time.UTC).Hour())15  fmt.Println("zone=", starttime.Date(2026, time.May, 28, 18, 30, 0, 0, time.UTC).Location())16}
    outputyear= 2026
    month= May
    hour= 18
    zone= UTC