Saat Dilimleri
Konumlarla çalışın
Saat Dilimleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Zaman Bir Konum Taşır
Her time.Time değerinin ilişkili bir konumu (saat dilimi) vardır. Aynı an, saat dilimine bağlı olarak farklı gösterilebilir.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.Location())
}UTC ve Yerel
İki yerleşik konum her zaman kullanılabilir:
- Koordineli Evrensel Zaman için
time.UTC. - Makinenin yerel saat dilimi için
time.Local.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.UTC().Hour())
}Adlandırılmış Bir Saat Dilimini Yükleme
time.LoadLocation(name), "Europe/Istanbul" veya "America/New_York" gibi bir IANA saat dilimini arar.
package main
import (
"fmt"
"time"
)
func main() {
loc, err := time.LoadLocation("UTC")
fmt.Println(loc, err)
}In ile Saat Dilimlerini Dönüştürme
t.In(loc), aynı anı farklı bir saat diliminde göstererek döndürür. Temel an değişmez; yalnızca gösterimi değişir.
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())
}Aynı An, Farklı Saatler
UTC öğlesi tek bir andır; ancak başka bir saat dilimindeki gözlemci saati farklı görür. Aralarındaki Sub farkı sıfırdır.
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))
}Bir Saat Diliminde Zaman Oluşturma
Doğrudan o saat diliminde bir zaman oluşturmak için time.Date işlevinin son bağımsız değişkeni olarak bir konum geçirin.
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())
}Saat Dilimi Ofsetini Okuma
t.Zone(), saat diliminin kısaltmasını ve UTC'den saniye cinsinden farkını döndürür.
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)
}Sabit Saat Dilimleri
Tam IANA kurallarına ihtiyaç duymadığınızda time.FixedZone(name, offsetSeconds), sabit ofsetli basit bir saat dilimi oluşturur.
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)
}Saat Dilimleri Arasında Biçimlendirme
Bir zaman damgasını okuyucunun saat diliminde göstermek için biçimlendirmeden önce In ile dönüştürün.
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"))
}UTC'de Saklayın, Yerelde Görüntüleyin
Yaygın bir kural şudur: UTC'de saklayın ve hesaplayın; zamanları kullanıcılara gösterirken yalnızca yerel saat dilimine dönüştürün. Bu, belirsizlikleri önler.
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())
}Yükleme Hatalarını Ele Alma
Saat dilimi veritabanı eksikse veya ad bilinmiyorsa LoadLocation başarısız olabilir. Hatayı her zaman kontrol edin.
package main
import (
"fmt"
"time"
)
func main() {
_, err := time.LoadLocation("Mars/Olympus")
if err != nil {
fmt.Println("unknown zone")
}
}Hızlı Kontrol
t.In(loc) neyi değiştirir?
Özet: Saat Dilimleri
Konumlarla çalışmayı öğrendiniz:
- Her zamanın bir konumu vardır;
UTCveLocalyerleşiktir. - Adlandırılmış saat dilimlerini
LoadLocationile yükleyin veyaFixedZoneile ofsetler oluşturun. Inile dönüştürün; UTC'yi saklayıp yerel saati görüntüleyin.
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"))
}Yapay zeka eğitmeniyle Go öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“Saat Dilimleri” dersi ücretsiz mi?
Evet — “Saat Dilimleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Saat Dilimleri” dersinde ne öğreneceğim?
Konumlarla çalışın Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Saat Dilimleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.