Ce face time.Time.Clock
t.Clock() returnează ora (0-23), minutul (0-59) și secunda (0-59). Hour(), Minute() și Second() returnează câte o componentă. Nanosecundele se citesc cu Nanosecond().
Valorile depind de fusul orar al momentului; convertește întâi cu In dacă ai nevoie de ora din altă zonă.
Ce returnează
Clock: (hour, min, sec int). Celelalte: un int.
Exemple
Exemplul 1: Mesaj de salut după oră
package main
import (
"fmt"
"time"
)
func salut(t time.Time) string {
switch h := t.Hour(); {
case h < 12:
return "Bună dimineața"
case h < 18:
return "Bună ziua"
default:
return "Bună seara"
}
}
func main() {
for _, ora := range []int{8, 14, 21} {
t := time.Date(2026, 10, 19, ora, 0, 0, 0, time.UTC)
fmt.Printf("%02d:00 -> %s\n", t.Hour(), salut(t))
}
}
Rezultat
08:00 -> Bună dimineața
14:00 -> Bună ziua
21:00 -> Bună seara
Exemplul 2: Clock și componentele separate
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2026, 10, 19, 9, 7, 45, 0, time.UTC)
h, m, s := t.Clock()
fmt.Println("Clock():", h, m, s)
fmt.Println("Hour/Minute/Second:", t.Hour(), t.Minute(), t.Second())
secundeDeLaMiezulNoptii := h*3600 + m*60 + s
fmt.Println("Secunde de la miezul nopții:", secundeDeLaMiezulNoptii)
deschis := h >= 9 && h < 17
fmt.Println("Magazin deschis:", deschis)
}
Rezultat
Clock(): 9 7 45
Hour/Minute/Second: 9 7 45
Secunde de la miezul nopții: 32865
Magazin deschis: true
Greșeli frecvente
- Verifici „după ora 17:30” doar cu
Hour() > 17. Ține cont și de minute:h > 17 || (h == 17 && m >= 30).
Comenzi înrudite
time.Time.Date: Citește data dintr-un moment: Date dă anul, luna și ziua deodată; Year, Month și Day le dau pe rând.time.Time.Truncate: Rotunjește un moment la un multiplu de durată: Truncate în jos, Round la cel mai apropiat (ex. la ora sau sfertul de oră).time.Time.In: Afișează același moment în alt fus orar: In(loc) pentru o zonă anume, UTC() pentru UTC, Local() pentru zona calculatorului.time.Time.Format: Transformă un moment în text după un model scris cu data de referință 2 ianuarie 2006, 15:04:05.