Zeitdauer in Go

Musfirah Waseem 20 Juni 2023
  1. Konvertierung von Dauerinstanzen
  2. Verwenden Sie die time.duration-Methode
  3. Berechnen Sie die verstrichene Zeit mit der Bibliothek time
  4. Wandeln Sie Zeitdauern in Go in eine Zahl um
Zeitdauer in Go

Go Zeitdauer-Konvertierungen kann auf mehrere Arten erfolgen. Die Methoden time library und time.duration werden häufig zum Berechnen und Anzeigen von Zeit verwendet.

Beachten Sie, dass sich Dauer auf die zwischen zwei definierten Zeitobjekten verstrichene Zeit als int64 Nanosekunden-Zählung bezieht.

Konvertierung von Dauerinstanzen

Nanosekunde 1
Mikrosekunde 1000 * Nanosekunde
Millisekunde 1000 * Mikrosekunde
Zweite 1000 * Millisekunde
Minute 60 * Sekunde
Stunde 60 * Minute

Verwenden Sie die time.duration-Methode

package main

import (
	"fmt"
	"time"
)

func main() {
	d, err := time.ParseDuration("1h25m10.9183256645s")
	if err != nil {
		panic(err)
	}

	count := []time.Duration{
		time.Nanosecond,
		time.Microsecond,
		time.Millisecond,
		time.Second,
		2 * time.Second,
		time.Minute,
		10 * time.Minute,
		time.Hour,
	}

	for _, r := range count {
		fmt.Printf("(%6s) = %s\n", r, d.Round(r).String())
	}
}

Ausgang:

(   1ns) = 1h25m10.918325664s
(   1µs) = 1h25m10.918326s
(   1ms) = 1h25m10.918s
(    1s) = 1h25m11s
(    2s) = 1h25m10s
(  1m0s) = 1h25m0s
( 10m0s) = 1h30m0s
(1h0m0s) = 1h0m0s

Der obige Code ermöglicht es uns, alle jeweiligen Dauern als Gleitkomma-Ganzzahl zu berechnen.

Berechnen Sie die verstrichene Zeit mit der Bibliothek time

package main
import (
    "fmt"
    "time"
)
func main() {

    var t time.Duration = 100000000000000
    fmt.Println(t.Hours())
    fmt.Println(t.Minutes())
    fmt.Println(t.Seconds())

    now := time.Now()
    time.Sleep(100000)
    diff := now.Sub(time.Now())

    fmt.Println("Elapsed time in seconds: ", diff.Seconds())
}

Ausgang:

27.77777777777778
1666.6666666666667
100000
Elapsed time in seconds:  -0.0001

Die verstrichene Zeit sagt uns, wie lange es gedauert hat, bis der Prozessor die Zeitdauern berechnet hat.

Wandeln Sie Zeitdauern in Go in eine Zahl um

package main
import (
    "fmt"

    "time"
)
func main() {

timeInput := 3600

data := time.Duration(timeInput) * time.Millisecond

fmt.Println("The time in Nanoseconds:", int64(data/time.Nanosecond))

fmt.Println("The time in Microseconds:", int64(data/time.Microsecond))

fmt.Println("The time in Milliseconds:", int64(data/time.Millisecond))
}

Ausgang:

The time in Nanoseconds: 3600000000
The time in Microseconds: 3600000
The time in Milliseconds: 3600

Der obige Code ermöglicht es uns, eine Zahl in eine Zeitinstanz umzuwandeln, und dann führt time.Duration Zeitumrechnungen durch. Am Ende wird die Zeitinstanz wieder in eine Zahl umgewandelt.

Musfirah Waseem avatar Musfirah Waseem avatar

Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.

LinkedIn

Verwandter Artikel - Go Time