So implementieren Sie die Zeitumrechnung in Golang effizient

PHPz
Freigeben: 2023-04-11 11:48:16
Original
1757 Leute haben es durchsucht

Golang ist eine relativ junge Programmiersprache, wird aber aufgrund ihrer extrem hohen Betriebseffizienz und starken Fähigkeiten zur gleichzeitigen Verarbeitung immer mehr von Entwicklern bevorzugt. In der tatsächlichen Entwicklung müssen wir häufig Zeit in Zeichenfolgen in verschiedenen Formaten oder Zeichenfolgen in Zeit umwandeln. In diesem Artikel erfahren Sie, wie Sie die Zeitkonvertierung in Golang effizient implementieren.

  1. Zeittyp

In Golang gibt es zwei Hauptzeittypen: time.Time und time.Duration. Unter diesen stellt time.Time einen Zeitpunkt dar, der zur Darstellung einer bestimmten Zeit verwendet werden kann, z. B. 12 Uhr am 1. Juli 2021, und time.Duration stellt einen Zeitraum dar, der zur Darstellung der Zeit verwendet werden kann Zeitspanne zwischen einem bestimmten Zeitpunkt, z. B. 10 Sekunden, 5 Minuten usw.

  1. Formatierte Ausgabe der Zeit

Wenn Sie eine Zeit vom Typ time.Time in einen String konvertieren müssen, können Sie die Methode Format() im Typ time.Time verwenden. Die Format()-Methode empfängt ein Zeitformatlayout als Eingabeparameter und formatiert die Zeit dann in eine entsprechende Zeichenfolge.

Das Folgende ist ein Beispielcode:

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    fmt.Println(t.Format("2006-01-02 15:04:05"))
}
Nach dem Login kopieren

Laufendes Ergebnis:

2021-07-01 12:00:00
Nach dem Login kopieren

In der Formatzeichenfolge stellen verschiedene Zeichen unterschiedliche Bedeutungen dar, wie in der folgenden Tabelle gezeigt:

Formatzeichen Bedeutungen
2006 Jahr (das im Beispiel verwendete Jahr)
01 Monat
02 Tag
15 Stunde (24-Stunden-Uhr)
03 (12-Stunden-Uhr)
04 Minuten
05 Sekunden
.000 Millisekunden
PM AM oder PM (12-Stunden-Format)
Montag Tag der Woche (vollständiger Name, z. B. Montag)
Mon Tag der Woche (abgekürzter Name, z. B. Mo)
Jan Monat (vollständiger Name, z. B. Januar )
Jan Monat (Abgekürzter Name, z. B. Jan)
MST Name der Zeitzone (z. B. MST, PST usw.)

Zusätzlich zur Verwendung vordefinierter Formatzeichen Sie können auch die Formatzeichenfolge anpassen, z. B.:

t := time.Now()
fmt.Println(t.Format("2006年01月02日 15:04:05.000 PM MST"))
Nach dem Login kopieren
  1. Zeichenfolge in Zeittyp

Wenn Sie eine Zeichenfolge in eine Zeit vom Typ time.Time umwandeln müssen, können Sie die Methode time.Parse() verwenden. Die Parse()-Methode empfängt zwei Parameter, der erste Parameter ist die Zeitzeichenfolge und der zweite Parameter ist das Zeitformatlayout. Zum Beispiel:

package main

import (
    "fmt"
    "time"
)

func main() {
    str := "2021-07-01 12:00:00"
    layout := "2006-01-02 15:04:05"
    t, err := time.Parse(layout, str)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(t)
}
Nach dem Login kopieren

Im obigen Code haben wir die Zeichenfolge in eine Variable t vom Typ time.Time konvertiert und Fehler im Konvertierungsprozess im Code ermittelt, um die Robustheit des Programms sicherzustellen.

  1. Berechnen Sie den Zeitunterschied

In Golang können wir die Zeitdifferenz direkt durch Subtraktion berechnen, zum Beispiel:

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Date(2021, 7, 1, 12, 0, 0, 0, time.Local)
    t2 := time.Date(2021, 7, 1, 12, 1, 0, 0, time.Local)
    duration := t2.Sub(t1)
    fmt.Println(duration)
}
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion time.Date(), um Zwei Zeiten zu erstellen t1 und t2, berechnen deren Zeitdifferenz und speichern das Ergebnis in einer variablen Dauer vom Typ time.Duration.

  1. Zeitstempel in den Typ time.Time konvertieren

In Programmen werden Zeitstempel manchmal zur Darstellung der Zeit verwendet. In Golang können Sie Zeitstempel mit der Methode time.Time in den Typ time.Time konvertieren. Zum Beispiel:

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := int64(1625133600)
    t := time.Unix(timestamp, 0)
    fmt.Println(t)
}
Nach dem Login kopieren

Laufergebnis:

2021-07-01 13:00:00 +0800 CST
Nach dem Login kopieren

Im obigen Code konvertieren wir einen Zeitstempel 1625133600 (der 13:00 Uhr am 1. Juli 2021 Pekinger Zeit darstellt) mithilfe der time.Unix()-Methode Time t in einen Zeitstempel vom Typ time.Time.

  1. Hinweise zu Zeitoperationen

Bei der Verwendung von Golang für Zeitoperationen müssen Sie die folgenden Punkte beachten:

1) Wenn Sie die Methode time.Parse() verwenden, um eine Zeichenfolge in eine Zeit umzuwandeln vom Typ time.Time Dabei müssen Sie darauf achten, dass die Zeitzeichenfolge mit dem Format des Zeitformat-Layouts übereinstimmt, andernfalls tritt ein Fehler auf.

2) Wenn wir bei der Verarbeitung der Zeit eine Zeitzonenkonvertierung durchführen müssen, müssen wir die beiden Variablen time.UTC() und time.Local() für die koordinierte Weltzeit und time.Local für den Standort verwenden die aktuelle Zeitzone.

3) Wenn Sie bei der Verarbeitung der Zeit die einzelnen Teile der Zeit wie Jahr, Monat, Tag, Stunde, Minute und Sekunde erhalten müssen, können Sie Year(), Month(), Day(), Hour verwenden (), Minute( im Typ time.Time), Second() und andere Methoden.

4) Wenn Sie eine Variable vom Typ time.Duration zur Darstellung einer Zeitspanne verwenden, können Sie die Methode time.ParseDuration() verwenden, um die Zeitspanne vom Typ String in eine Variable vom Typ time.Duration umzuwandeln und die Genauigkeit zu steuern.

Kurz gesagt: Wenn Sie Golang zur Zeitverarbeitung verwenden, müssen Sie auf Details achten, um die Genauigkeit der Zeit und die Robustheit des Programms sicherzustellen.

  1. Zusammenfassung

In diesem Artikel haben wir besprochen, wie Zeitkonvertierungsvorgänge in Golang durchgeführt werden, einschließlich zeitformatierter Ausgabe, Konvertieren von Zeichenfolgen in den Typ „time.Time“, Berechnen der Zeitdifferenz und Konvertieren von Zeitstempeln in „time.Time“ und andere Aspekte des Wissens. Durch die Beherrschung dieses Wissens können wir uns dabei helfen, zeitbezogene Probleme effizienter zu bewältigen und die Praktikabilität und Zuverlässigkeit des Programms zu verbessern.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Zeitumrechnung in Golang effizient. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage