Go Academy · Lektion

Tid och varaktighet

Representera tidpunkter och intervall

Lektion 1 av 413 steg

Tid och varaktighet är en gratis lektion i Go Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Go Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Go Academy innehåller totalt 4 lektioner.

Paketet time

Go-paketet time representerar tidpunkter och tidsintervall mellan dem.

  • time.Time är en specifik tidpunkt.
  • time.Duration är en tidslängd.
package main

import (
    "fmt"
    "time"
)

func main() {
    var d time.Duration = 2 * time.Second
    fmt.Println(d)
}

Hämta aktuell tid

time.Now() returnerar den aktuella tidpunkten som en time.Time. (Det exakta värdet beror på när programmet körs.)

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now.Year())
}

Skapa en specifik tid

time.Date skapar en exakt tidpunkt utifrån dess delar: år, månad, dag, timme, minut, sekund, nanosekund och tidszon.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    fmt.Println(t)
}

Läsa tidskomponenter

En time.Time tillhandahåller metoder som Year, Month, Day, Hour och Weekday.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 0, 0, 0, 0, time.UTC)
    fmt.Println(t.Month(), t.Day(), t.Weekday())
}

Duration-konstanter

Skapa tidslängder genom att multiplicera enhetskonstanterna: time.Hour, time.Minute, time.Second, time.Millisecond.

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 1*time.Hour + 30*time.Minute
    fmt.Println(d)
}

Konvertera tidslängder

Metoder som Seconds(), Minutes() och Hours() returnerar tidslängden som en float64 i den aktuella enheten.

package main

import (
    "fmt"
    "time"
)

func main() {
    d := 90 * time.Minute
    fmt.Println(d.Hours())
    fmt.Println(d.Seconds())
}

Lägga till tid

t.Add(d) returnerar en ny tid som förskjutits med en tidslängd. Originalvärdet ändras inte eftersom time.Time är en värdetyp.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    later := t.Add(2 * time.Hour)
    fmt.Println(later.Hour())
}

Lägga till kalenderenheter

t.AddDate(years, months, days) förskjuter tiden med kalenderintervall och hanterar månaders längd och skottår korrekt.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, time.January, 31, 0, 0, 0, 0, time.UTC)
    next := t.AddDate(0, 1, 0)
    fmt.Println(next.Month(), next.Day())
}

Skillnad mellan tidpunkter

t2.Sub(t1) returnerar Duration mellan två tidpunkter. Ett negativt resultat betyder att t2 inträffar tidigare.

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, time.May, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, time.May, 30, 12, 0, 0, 0, time.UTC)
    fmt.Println(b.Sub(a))
}

Jämföra tidpunkter

Använd Before, After och Equal för att jämföra tidpunkter. Undvik ==, eftersom operatorn även jämför den interna platsen.

package main

import (
    "fmt"
    "time"
)

func main() {
    a := time.Date(2026, 5, 30, 9, 0, 0, 0, time.UTC)
    b := time.Date(2026, 5, 30, 10, 0, 0, 0, time.UTC)
    fmt.Println(a.Before(b))
}

Unix-tidsstämplar

t.Unix() ger antalet sekunder sedan den 1 januari 1970. time.Unix(sec, 0) konverterar tillbaka till en time.Time.

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2026, 5, 30, 0, 0, 0, 0, time.UTC)
    secs := t.Unix()
    fmt.Println(time.Unix(secs, 0).UTC().Year())
}

Snabb kontroll

Vad returnerar t2.Sub(t1)?

Sammanfattning: tid och Duration

Ni har lärt er den grundläggande tidsmodellen:

  • time.Time är en tidpunkt; time.Duration är ett tidsintervall.
  • Skapa värden med Now och Date; förskjut dem med Add och AddDate.
  • Mät med Sub och jämför med Before/After.
package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Date(2026, 5, 30, 8, 0, 0, 0, time.UTC)
    end := start.Add(45 * time.Minute)
    fmt.Println(end.Sub(start).Minutes(), "minutes")
}
Gratis att börja

Lär dig Go med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
51
Lektioner
203

Vanliga frågor

Är lektionen ”Tid och varaktighet” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Go Academy, inklusive ”Tid och varaktighet”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Go Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Tid och varaktighet”?

Representera tidpunkter och intervall Ni övar på Go Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Go Academy?

Du behöver inga förkunskaper. Utbildningen i Go Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Tid och varaktighet”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Go Academy-lektionen?

Ja. Varje Go Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Tid och varaktighet
  2. Formatering och tolkning
  3. Timers och tickers
  4. Tidszoner
← Tillbaka till Go Academy