Aikavyöhykkeet
Työskentele sijaintien kanssa
Aikavyöhykkeet on ilmainen Go Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Go Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Go Academy-kurssilla on yhteensä 4 oppituntia.
Aika sisältää sijainnin
Jokaisella time.Time-arvolla on siihen liittyvä sijainti (aikavyöhyke). Sama ajanhetki voidaan näyttää eri tavoin vyöhykkeestä riippuen.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.Location())
}UTC ja paikallinen aika
Kaksi valmista sijaintia on aina käytettävissä:
time.UTCkoordinoidulle yleisajalle.time.Localkoneen paikalliselle aikavyöhykkeelle.
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 5, 30, 12, 0, 0, 0, time.UTC)
fmt.Println(t.UTC().Hour())
}Nimetyn aikavyöhykkeen lataaminen
time.LoadLocation(name) etsii IANA-aikavyöhykkeen, kuten "Europe/Istanbul" tai "America/New_York".
package main
import (
"fmt"
"time"
)
func main() {
loc, err := time.LoadLocation("UTC")
fmt.Println(loc, err)
}Aikavyöhykkeiden muuntaminen In-metodilla
t.In(loc) palauttaa saman ajanhetken eri aikavyöhykkeellä esitettynä. Taustalla oleva ajanhetki ei muutu, vain sen esitystapa muuttuu.
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())
}Sama ajanhetki, eri kellonajat
Keskipäivä UTC-aikaa on yksi ajanhetki, mutta toisella aikavyöhykkeellä oleva näkee eri kellonajan. Niiden Sub-erotus on nolla.
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))
}Ajan luominen aikavyöhykkeelle
Anna sijainti time.Date-kutsun viimeisenä argumenttina luodaksesi ajan suoraan kyseiselle aikavyöhykkeelle.
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())
}Aikavyöhykkeen siirtymän lukeminen
t.Zone() palauttaa aikavyöhykkeen lyhenteen ja sen siirtymän UTC-ajasta sekunteina.
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)
}Kiinteät aikavyöhykkeet
Kun et tarvitse IANA-sääntöjen täydellistä tukea, time.FixedZone(name, offsetSeconds) luo yksinkertaisen vakiopoikkeaman sisältävän aikavyöhykkeen.
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)
}Muotoilu eri aikavyöhykkeillä
Muunna aika In-metodilla ennen muotoilua, jotta aikaleima näkyy lukijan aikavyöhykkeellä.
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"))
}Tallenna UTC-aikana, näytä paikallisena aikana
Laajasti käytetty sääntö on: tallenna ja käsittele ajat UTC-aikana ja muunna ne paikalliselle aikavyöhykkeelle vasta, kun näytät ajat käyttäjille. Näin vältät epäselvyydet.
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())
}Latausvirheiden käsittely
LoadLocation voi epäonnistua, jos aikavyöhyketietokanta puuttuu tai nimi on tuntematon. Tarkista virhe aina.
package main
import (
"fmt"
"time"
)
func main() {
_, err := time.LoadLocation("Mars/Olympus")
if err != nil {
fmt.Println("unknown zone")
}
}Pikatarkistus
Mitä t.In(loc) muuttaa?
Kertaus: aikavyöhykkeet
Opitte työskentelemään sijaintien kanssa:
- Jokaisella ajalla on sijainti;
UTCjaLocalovat valmiina. - Lataa nimetyt aikavyöhykkeet
LoadLocation-metodilla tai luo siirtymiäFixedZone-metodilla. - Muunna ajat
In-metodilla; tallenna UTC-aikana ja näytä paikallisena aikana.
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"))
}Opi Go tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Aikavyöhykkeet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Go Academy-oppimispolun 3 oppituntia, myös oppitunnin “Aikavyöhykkeet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Go Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Aikavyöhykkeet”?
Työskentele sijaintien kanssa Harjoittelet Go Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Go Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Go Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Aikavyöhykkeet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Go Academy-oppitunnilla?
Kyllä. Jokainen Go Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.