Tid och varaktighet
Representera tidpunkter och intervall
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
NowochDate; förskjut dem medAddochAddDate. - Mät med
Suboch jämför medBefore/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")
}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
- Tid och varaktighet
- Formatering och tolkning
- Timers och tickers
- Tidszoner