Maison >développement back-end >Golang >Comment puis-je définir de manière fiable le fuseau horaire mondial dans une application Go ?

Comment puis-je définir de manière fiable le fuseau horaire mondial dans une application Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 11:27:11615parcourir

How Can I Reliably Set the Global Timezone in a Go Application?

Définition du fuseau horaire global dans Go

Dans Go, le fuseau horaire est généralement défini via la variable d'environnement TZ. Lors de la définition de cette variable dans les conteneurs Docker ou via Bash, une méthode alternative consiste à utiliser la fonction os.SetEnv dans votre application Go. Cependant, cette approche peut échouer si d'autres packages ont déjà accédé au package time.

Pour garantir que os.SetEnv définit le fuseau horaire avant qu'un autre package n'accède à l'heure, vous pouvez utiliser la solution suivante :

  1. Créer un package pour l'initialisation du fuseau horaire :

    Créez un package distinct nommé tzinit avec le code suivant :

    package tzinit
    
    import (
        "os"
    )
    
    func init() {
        os.Setenv("TZ", "Africa/Cairo")
    }
  2. Importez tzinit en premier dans le package principal :

    Dans votre package principal, importez le package tzinit en tant que la première déclaration d'importation :

    package main
    
    import _ "path/to/tzinit"
    
    // Other imports

En important tzinit d'abord, vous vous assurez qu'il définit le fuseau horaire avant qu'un autre package n'accède au package horaire.

Remarque :

Lors de la définition de la variable d'environnement TZ à partir de l'application Go fonctionne dans la plupart des cas, il est recommandé de définir cette variable avant de lancer l'application Go pour un comportement cohérent et déterministe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn