Zeit.Zeit mit Zeitzonenversatz konstruieren
In diesem Szenario haben Sie erfolgreich ein Datum aus einem Apache-Protokoll analysiert und Informationen erhalten wie Jahr, Monat, Tag, Stunde, Minute, Sekunde und Zeitzone. Um eine time.Time zu erstellen, die den angegebenen Zeitzonenversatz enthält, können Sie time.Local oder time.UTC nicht verwenden.
Verwenden Sie time.FixedZone()
To Um diese Herausforderung zu lösen, können Sie time.FixedZone() nutzen. Mit dieser Methode können Sie eine time.Location mit einem festen Zeitzonenversatz erstellen. Zum Beispiel:
loc := time.FixedZone("myzone", -8*3600) nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, loc) fmt.Println(nativeDate)
Dieser Code erstellt eine time.Location mit dem Namen „myzone“ mit einem Offset von -8 Stunden und verwendet diese dann, um eine time.Time mit dem angegebenen Datum und der angegebenen Uhrzeit zu erstellen.
Einen Zeitzonenversatz analysieren
Wenn der Zeitzonenversatz als Zeichenfolge bereitgestellt wird, können Sie time.Parse() verwenden, um Analysieren Sie es. Verwenden Sie eine Layoutzeichenfolge, die ausschließlich den Referenzzonenversatz enthält:
t, err := time.Parse("-0700", "-0800") fmt.Println(t, err)
Dieser Code erfasst den Zeitzonenversatz als time.Time-Objekt.
Alternative Lösung
Alternativ können Sie Ihren vorhandenen Code ändern, um den Zeitzonenversatz wie folgt zu berücksichtigen:
t, err := time.Parse("-0700", "-0800") if err != nil { panic(err) } nativeDate := time.Date(2019, 2, 6, 0, 0, 0, 0, t.Location()) fmt.Println(nativeDate)
Dies Die Lösung analysiert zunächst den Zeitzonenversatz als time.Time-Objekt und verwendet dann seine Location()-Methode, um die Zeitzone für die time.Time festzulegen, die Sie erstellen.
Das obige ist der detaillierte Inhalt vonWie konstruiere ich ein time.Time-Objekt mit einem angegebenen Zeitzonenversatz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!