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
Freigeben: 2024-12-11 08:52:10
Original
742 Leute haben es durchsucht

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage