Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Mengelola Waktu di Go Tanpa Ribet

1 min read .
Mengelola Waktu di Go Tanpa Ribet

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.

Lihat Juga

chevron-up