0Pricing
Go Academy · Leçon

Fuseaux horaires

Travailler avec des emplacements

Fuseaux horaires est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.

Le temps comporte un fuseau horaire

Chaque time.Time possède un fuseau horaire associé. Un même instant peut être affiché différemment selon le fuseau.

package main

import (
    "fmt"
    "time"
)

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

UTC et local

Deux fuseaux horaires intégrés sont toujours disponibles :

  • time.UTC pour le temps universel coordonné.
  • time.Local pour le fuseau horaire local de la machine.
package main

import (
    "fmt"
    "time"
)

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

Charger un fuseau nommé

time.LoadLocation(name) recherche un fuseau IANA tel que "Europe/Istanbul" ou "America/New_York".

package main

import (
    "fmt"
    "time"
)

func main() {
    loc, err := time.LoadLocation("UTC")
    fmt.Println(loc, err)
}

Convertir des fuseaux avec In

t.In(loc) renvoie le même instant affiché dans un autre fuseau. L'instant sous-jacent ne change pas : seule sa présentation est différente.

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())
}

Même instant, horloges différentes

Midi en UTC correspond à un seul instant, mais une personne située dans un autre fuseau voit une heure différente sur son horloge. La différence Sub entre ces instants est nulle.

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))
}

Créer un instant dans un fuseau

Passez un fuseau horaire comme dernier argument à time.Date pour créer directement un instant dans ce fuseau.

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())
}

Lire le décalage du fuseau

t.Zone() renvoie l'abréviation du fuseau et son décalage par rapport à UTC, exprimé en secondes.

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)
}

Fuseaux fixes

Lorsque vous n'avez pas besoin de toutes les règles IANA, time.FixedZone(name, offsetSeconds) crée un fuseau simple avec un décalage constant.

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)
}

Formater dans différents fuseaux

Effectuez la conversion avec In avant le formatage pour afficher un horodatage dans le fuseau du lecteur.

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"))
}

Stocker en UTC, afficher en local

Une règle très répandue consiste à stocker et effectuer les calculs en UTC, puis à convertir vers un fuseau local uniquement lors de l'affichage des instants aux utilisateurs. Cela évite les ambiguïtés.

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())
}

Gérer les erreurs de chargement

LoadLocation peut échouer si la base de données des fuseaux est absente ou si le nom est inconnu. Vérifiez toujours l'erreur.

package main

import (
    "fmt"
    "time"
)

func main() {
    _, err := time.LoadLocation("Mars/Olympus")
    if err != nil {
        fmt.Println("unknown zone")
    }
}

Vérification rapide

Que modifie t.In(loc) ?

Récapitulatif : fuseaux horaires

Vous avez appris à travailler avec les fuseaux horaires :

  • Chaque instant possède un fuseau horaire ; UTC et Local sont intégrés.
  • Chargez des fuseaux nommés avec LoadLocation ou construisez des décalages avec FixedZone.
  • Convertissez avec In ; stockez en UTC et affichez en local.
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"))
}

Questions Fréquemment Posées

La leçon « Fuseaux horaires » est-elle gratuite ?

Oui — le texte complet de « Fuseaux horaires » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fuseaux horaires » ?

Travailler avec des emplacements Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Go Academy ?

Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Fuseaux horaires » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?

Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Temps et durée
  2. Mise en forme et analyse
  3. Minuteries et tickers
  4. Fuseaux horaires
← Retour à Go Academy