Go Academy · Pelajaran

Waktu dan Durasi

Representasikan momen dan interval

Pelajaran 1 dari 413 langkah

Waktu dan Durasi adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Paket time

Paket time Go merepresentasikan momen dalam waktu dan rentang di antara momen-momen tersebut.

  • time.Time adalah suatu saat tertentu.
  • time.Duration adalah durasi waktu.
package main

import (
    "fmt"
    "time"
)

func main() {
    var d time.Duration = 2 * time.Second
    fmt.Println(d)
}

Mendapatkan Waktu Saat Ini

time.Now() mengembalikan saat ini sebagai time.Time. (Nilai tepatnya bergantung pada waktu program dijalankan.)

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now.Year())
}

Membangun Waktu Tertentu

time.Date menyusun momen yang tepat dari bagian-bagiannya: tahun, bulan, hari, jam, menit, detik, nanodetik, dan lokasi.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t)
}

Membaca Komponen Waktu

Sebuah time.Time menyediakan metode seperti Year, Month, Day, Hour, dan Weekday.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 0, 0, 0, 0, time.UTC)
    fmt.Println(t.Month(), t.Day(), t.Weekday())
}

Konstanta Durasi

Susun durasi dengan mengalikan konstanta satuan: time.Hour, time.Minute, time.Second, time.Millisecond.

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 1*time.Hour + 30*time.Minute
    fmt.Println(d)
}

Mengonversi Durasi

Metode seperti Seconds(), Minutes(), dan Hours() mengembalikan durasi sebagai float64 dalam satuan tersebut.

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 90 * time.Minute
    fmt.Println(d.Hours())
    fmt.Println(d.Seconds())
}

Menambahkan Waktu

t.Add(d) mengembalikan waktu baru yang digeser sebesar suatu durasi. Nilai aslinya tidak berubah karena time.Time merupakan tipe nilai.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    later := t.Add(2 * time.Hour)
    fmt.Println(later.Hour())
}

Menambahkan Satuan Kalender

t.AddDate(years, months, days) menggeser waktu berdasarkan jumlah kalender dan menangani panjang bulan serta tahun kabisat dengan benar.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.January, 31, 0, 0, 0, 0, time.UTC)
    next := t.AddDate(0, 1, 0)
    fmt.Println(next.Month(), next.Day())
}

Perbedaan antara Waktu

t2.Sub(t1) mengembalikan Duration di antara dua waktu. Hasil negatif berarti t2 lebih awal.

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, time.May, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(b.Sub(a))
}

Membandingkan Waktu

Gunakan Before, After, dan Equal untuk membandingkan momen. Hindari == karena operator tersebut juga membandingkan lokasi internal.

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, 5, 30, 10, 0, 0, 0, time.UTC)
    fmt.Println(a.Before(b))
}

Stempel Waktu Unix

t.Unix() memberikan jumlah detik sejak 1 Januari 1970. time.Unix(sec, 0) mengonversinya kembali menjadi time.Time.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 0, 0, 0, 0, time.UTC)
    secs := t.Unix()
    fmt.Println(time.Unix(secs, 0).UTC().Year())
}

Pemeriksaan Singkat

Apa yang dikembalikan oleh t2.Sub(t1)?

Ringkasan: Waktu dan Durasi

Anda telah mempelajari model waktu inti:

  • time.Time adalah sebuah momen; time.Duration adalah sebuah rentang.
  • Buat dengan Now dan Date; geser dengan Add dan AddDate.
  • Ukur dengan Sub dan bandingkan dengan Before/After.
package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Date(2026, 5, 30, 8, 0, 0, 0, time.UTC)
    end := start.Add(45 * time.Minute)
    fmt.Println(end.Sub(start).Minutes(), "minutes")
}
Gratis untuk memulai

Belajar Go dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Waktu dan Durasi” gratis?

Ya — teks lengkap “Waktu dan Durasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Waktu dan Durasi”?

Representasikan momen dan interval Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Waktu dan Durasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Waktu dan Durasi
  2. Pemformatan dan Penguraian
  3. Timer dan Ticker
  4. Zona Waktu
← Kembali ke Go Academy