Konvertieren von UTC in die "lokale" Zeit zu Gehen

Wie kann ich konvertieren UTC-Zeit zu lokale Zeit?

Ich habe eine Karte erstellt mit den UTC-Differenz für alle Länder, die ich brauche die lokale Zeit. Dann ich hinzufügen, dass die Differenz als Dauer auf die aktuelle Zeit (UTC) ein, und drucken Sie das Ergebnis, in der Hoffnung, dass die lokale Zeit des jeweiligen Landes.

Für einige Gründe, warum das Ergebnis falsch ist. Zum Beispiel mit Ungarn es gibt eine Stunde Differenz. Keine Ahnung warum ich bin immer falsche Ergebnisse?

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)
}
  • Was genau funktioniert nicht? Dein code gibt die Uhrzeit ist eine Stunde nach UTC.
  • Ich erwartete, um die lokale Zeit in Ungarn, das ist UTC+1, aber es ist eine Stunde Unterschied zwischen der Zeit, berichtet von tz [1], die ich denke, ist richtig und die Zeit erzeugt, indem go [1] timeanddate.com/worldclock/hungary/budapest
  • Der Spielplatz ist an der Zeit, beginnt bei 2009-11-10 23:00:00 +0000 UTC
  • Ich bin eigentlich testen es auf meinem Rechner, also kein Spielplatz link.
  • Es gibt bereits eine Datenbank, die Zeitzonen in Ihrem system. Verwenden time.Location
  • Ich muss eine oder mehrere lokale Zeit(s) von Land zu Land. Ich bin mir nicht sicher, ich kann das mit der Zeit.Lage, da es bietet die offset - / Zeit-zone von Regionen ( z.B. Europa/London, nicht Großbritannien oder Schottland etc. ) ?
  • ok, ich kann sehen, aber Sie wahrscheinlich wollen, um diese Karte zur Zeit.Stellen, aber nicht die benutzerdefinierte Dauer.

InformationsquelleAutor hey | 2014-08-14
Schreibe einen Kommentar