Convertir UTC en heure “local” - Aller
Comment puis-je convertir l'heure UTC en heure locale ?
J'ai créé une carte avec l'UTC différence de tous les pays que j'ai besoin de l'heure locale. Puis-je ajouter que la différence de durée à l'heure actuelle (UTC) et d'imprimer le résultat en espérant que l'heure locale de ce pays.
Pour certaines raisons, le résultat est mauvais. Par exemple sur Hongrie il y a une heure de différence. Aucune idée de pourquoi j'obtiens des résultats incorrects ?
package main
import "fmt"
import "time"
func main() {
m := make(map[string]string)
m["Hungary"] = "+01.00h"
offSet, err := time.ParseDuration(m["Hungary"])
if err != nil {
panic(err)
}
t := time.Now().UTC().Add(offSet)
nice := t.Format("15:04")
fmt.Println(nice)
}
Qu'est-ce exactement ne fonctionne pas? Votre code affiche l'heure de l'horloge d'une heure après l'heure UTC.
Je m'attendais à obtenir l'heure locale en Hongrie, qui est UTC+1, mais il y a une heure de décalage entre le temps indiqué par tz [1], ce qui je pense est correct et que le temps générée par go [1] timeanddate.com/worldclock/hungary/budapest
L'aire de jeux du moment commence à
Je suis en train de le tester sur ma machine, donc pas de jeux lien.
ok je vois, mais, vous voulez probablement à la carte ces de temps.Endroits, pas des durées.
Je m'attendais à obtenir l'heure locale en Hongrie, qui est UTC+1, mais il y a une heure de décalage entre le temps indiqué par tz [1], ce qui je pense est correct et que le temps générée par go [1] timeanddate.com/worldclock/hungary/budapest
L'aire de jeux du moment commence à
2009-11-10 23:00:00 +0000 UTC
Je suis en train de le tester sur ma machine, donc pas de jeux lien.
ok je vois, mais, vous voulez probablement à la carte ces de temps.Endroits, pas des durées.
OriginalL'auteur hey | 2014-08-14
Vous devez vous connecter pour publier un commentaire.
Gardez à l'esprit que le terrain de jeu a l'heure pour
2009-11-10 23:00:00 +0000 UTC
, de sorte qu'il est de travail.La bonne façon est d'utiliser
time.LoadLocation
bien, voici un exemple:ou vous pourriez
time.LoadLocation("Europe/Budapest")
play.golang.org/p/n_D9fA6WBQ fonctionne correctement sur mon système et imprime le bon moment, peut-être que l'horloge de votre ordinateur est foiré? êtes-vous en Egypte, par hasard?
tandis que celui qui semble le plus universel, mais en gardant une trace de l'heure d'été par vous-même (en particulier car certains gouvernements peuvent changer quelques fois dans l'année, comme ici en Egypte) peut dégénérer très rapidement.
Merci de nous montrer l'utilisation du temps.Temps.Dans la méthode. C', et c'est le but, échappe totalement à moi quand je pensais que je savais comment utiliser le package. Comme d'habitude, quand je pense que j'ai couru dans un bug dans un golang paquet, je l'ai vraiment découvert une hypothèse que je faisais.
OriginalL'auteur OneOfOne
Votre approche est erronée. Un pays peut avoir plusieurs fuseaux horaires, par exemple, états-unis et la Russie. En raison de l'heure d'été (DST), une zone peut avoir plus d'une fois, par exemple, en Hongrie. La hongrie est UTC +1:00 et est également UTC+2:00 de l'heure d'été.
Pour chaque emplacement que vous souhaitez que l'heure locale pour une heure UTC, l'utilisation de l'IANA (tzdata) fuseau horaire emplacement. Par exemple,
De sortie:
Références:
IANA Temps de la Zone de la Base de données
tz base de données
tz base de données de fuseaux horaires
Fuseau horaire
De temps en Hongrie
OriginalL'auteur peterSO
Epargnez-vous les tracas de vous embêter avec des zones spécifiques, l'utilisation de l'emplacement "Local". Voici un exemple concret et de locale et l'heure UTC de conversion:
OriginalL'auteur Rohanthewiz