Heim >Backend-Entwicklung >Golang >Wie konstruiere ich ein time.Time-Objekt mit einem angegebenen Zeitzonenversatz?

Wie konstruiere ich ein time.Time-Objekt mit einem angegebenen Zeitzonenversatz?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-11 08:52:10716Durchsuche

How to Construct a time.Time Object with a Specified Time Zone Offset?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn