Mengelola Waktu di Go Tanpa Ribet
1
min read .
Updated on
Waktu itu deceptively tricky. Sekilas gampang, tapi salah sedikit bisa bikin bug susah dilacak—apalagi kalau zonasi atau durasi ikut campur. Di Go, paket time
cukup lengkap buat urusan ini: dari membaca waktu, formatting, parsing, sampai scheduler sederhana.
Waktu Sekarang
currentTime := time.Now()
fmt.Println("Sekarang:", currentTime)
Format & Parse
formatted := currentTime.Format("2006-01-02 15:04:05")
parsed, _ := time.Parse("2006-01-02 15:04:05", "2024-08-24 13:45:00")
fmt.Println("Format:", formatted, "| Parsed:", parsed)
Durasi & Hitung Selisih
future := currentTime.Add(2 * time.Hour)
past := currentTime.Add(-30 * time.Minute)
fmt.Println("Dua jam lagi:", future, "| Setengah jam lalu:", past)
fmt.Println("Selisih:", future.Sub(currentTime))
Zona Waktu
loc, _ := time.LoadLocation("Asia/Jakarta")
fmt.Println("Waktu Jakarta:", currentTime.In(loc))
Tugas Berkala
ticker := time.NewTicker(2 * time.Second)
defer ticker.Stop()
go func() {
for t := range ticker.C {
fmt.Println("Tick:", t)
}
}()
time.Sleep(10 * time.Second)
Intinya, time
Go bikin pekerjaan yang biasanya ribet jadi sederhana. Fokus ke dasar-dasar ini dulu, nanti kalau butuh fitur lebih kompleks, tinggal dikombinasiin. Kalau kamu punya trik lain buat nge-handle waktu di Go, share dong—seringkali tips praktis developer lain lebih berguna daripada dokumentasi resmi.