Go Academy · Ders

Saat Dilimleri

Konumlarla çalışın

4. ders / 413 adım

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; UTC ve Local yerleşiktir.
  • Adlandırılmış saat dilimlerini LoadLocation ile yükleyin veya FixedZone ile ofsetler oluşturun.
  • In ile 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"))
}
Başlamak ücretsiz

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.

Bu kursun tüm dersleri

  1. Zaman ve Süre
  2. Biçimlendirme ve Ayrıştırma
  3. Zamanlayıcılar ve Tiklayıcılar
  4. Saat Dilimleri
← Go Academy Sayfasına Dön