Zon Masa
Bekerja dengan lokasi
Zon Masa ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Masa Membawa Lokasi
Setiap time.Time mempunyai lokasi yang berkaitan (zon waktu). Detik yang sama boleh dipaparkan secara berbeza bergantung pada zon.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.Location())
}UTC dan Setempat
Dua lokasi terbina dalam sentiasa tersedia:
time.UTCuntuk Waktu Universal Selaras.time.Localuntuk zon setempat mesin.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.UTC().Hour())
}Memuatkan Zon Bernama
time.LoadLocation(name) mencari zon IANA seperti "Europe/Istanbul" atau "America/New_York".
package main
import (
"fmt"
"time"
)
func main() {
loc, err := time.LoadLocation("UTC")
fmt.Println(loc, err)
}Menukar Zon dengan In
t.In(loc) mengembalikan detik yang sama tetapi dipaparkan dalam zon yang berbeza. Detik asas tidak berubah, hanya paparannya yang berubah.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.In(time.UTC).Hour())
}Detik Sama, Jam Berbeza
Tengah hari UTC ialah satu detik tunggal, tetapi pemerhati di zon lain melihat jam pada waktu setempat yang berbeza. Perbezaan Sub antara kedua-duanya ialah sifar.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
u := t.UTC()
fmt.Println(t.Sub(u))
}Membina Masa dalam Zon
Hantar lokasi sebagai argumen terakhir kepada time.Date untuk mencipta masa secara terus dalam zon tersebut.
package main
import (
"fmt"
"time"
)
func main() {
loc, _ := time.LoadLocation("UTC")
t := time.Date(2026, 5, 30, 9, 0, 0, 0, loc)
fmt.Println(t.Hour())
}Membaca Ofset Zon
t.Zone() mengembalikan singkatan zon dan ofsetnya daripada UTC dalam unit saat.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
name, offset := t.Zone()
fmt.Println(name, offset)
}Zon Tetap
Apabila anda tidak memerlukan peraturan IANA yang lengkap, time.FixedZone(name, offsetSeconds) mencipta zon mudah dengan ofset tetap.
package main
import (
"fmt"
"time"
)
func main() {
loc := time.FixedZone("GMT+3", 3*3600)
t := time.Date(2026, 5, 30, 12, 0, 0, 0, loc)
name, off := t.Zone()
fmt.Println(name, off)
}Memformat Merentas Zon
Tukar dengan In sebelum memformat untuk memaparkan cap masa dalam zon pembaca.
package main
import (
"fmt"
"time"
)
func main() {
loc := time.FixedZone("GMT+3", 3*3600)
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.In(loc).Format("15:04 MST"))
}Simpan UTC, Paparkan Setempat
Peraturan yang digunakan secara meluas: simpan dan lakukan pengiraan dalam UTC, kemudian tukar kepada zon setempat hanya apabila memaparkan masa kepada pengguna. Ini mengelakkan kekeliruan.
package main
import (
"fmt"
"time"
)
func main() {
stored := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
loc := time.FixedZone("GMT+2", 2*3600)
fmt.Println("shown:", stored.In(loc).Hour())
}Mengendalikan Ralat Pemuatan
LoadLocation boleh gagal jika pangkalan data zon tiada atau namanya tidak diketahui. Sentiasa semak ralat tersebut.
package main
import (
"fmt"
"time"
)
func main() {
_, err := time.LoadLocation("Mars/Olympus")
if err != nil {
fmt.Println("unknown zone")
}
}Semakan Pantas
Apakah yang diubah oleh t.In(loc)?
Ulang Kaji: Zon Waktu
Anda telah mempelajari cara menggunakan lokasi:
- Setiap masa mempunyai lokasi;
UTCdanLocaltersedia secara terbina dalam. - Muatkan zon bernama dengan
LoadLocationatau bina ofset denganFixedZone. - Tukar dengan
In; simpan dalam UTC dan paparkan dalam zon setempat.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 15, 0, 0, 0, time.UTC)
loc := time.FixedZone("GMT-5", -5*3600)
fmt.Println(t.In(loc).Format("15:04 MST"))
}Pelajari Go dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Zon Masa” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Zon Masa”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Zon Masa”?
Bekerja dengan lokasi Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Go Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Zon Masa” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.