Метод After
func (t Time) After(u Time) bool
After сообщает, является ли момент времени t после u.
Пример использования After
package main
import (
"fmt"
"time"
)
func main() {
year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)
isYear3000AfterYear2000 := year3000.After(year2000) // True
isYear2000AfterYear3000 := year2000.After(year3000) // False
fmt.Printf("year3000.After(year2000) = %v\n", isYear3000AfterYear2000)
fmt.Printf("year2000.After(year3000) = %v\n", isYear2000AfterYear3000)
}
Вывод:
year3000.After(year2000) = true
year2000.After(year3000) = false
Метод Before
func (t Time) Before(u Time) bool
Before сообщает, находится ли момент времени t перед u.
Пример использования Before
package main
import (
"fmt"
"time"
)
func main() {
year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)
isYear2000BeforeYear3000 := year2000.Before(year3000) // True
isYear3000BeforeYear2000 := year3000.Before(year2000) // False
fmt.Printf("year2000.Before(year3000) = %v\n", isYear2000BeforeYear3000)
fmt.Printf("year3000.Before(year2000) = %v\n", isYear3000BeforeYear2000)
}
Вывод:
year2000.Before(year3000) = true
year3000.Before(year2000) = false
Метод Equal
func (t Time) Equal(u Time) bool
Equal сообщает, представляют ли t и u один и тот же момент времени. Два времени могут быть равны, даже если они находятся в разных местах. Например, 6:00 +0200 and 4:00 UTC равны. О ловушках использования == со значениями Time; большая часть кода должна использовать вместо этого Equal.
Пример использования Equal
package main
import (
"fmt"
"time"
)
func main() {
secondsEastOfUTC := int((8 * time.Hour).Seconds())
beijing := time.FixedZone("Beijing Time", secondsEastOfUTC)
// В отличие от оператора равенства (==), Equal знает,
// что d1 и d2 являются одним и тем же моментом,
// но в разных часовых поясах.
d1 := time.Date(2000, 2, 1, 12, 30, 0, 0, time.UTC)
d2 := time.Date(2000, 2, 1, 20, 30, 0, 0, beijing)
datesEqualUsingEqualOperator := d1 == d2
datesEqualUsingFunction := d1.Equal(d2)
fmt.Printf("datesEqualUsingEqualOperator = %v\n", datesEqualUsingEqualOperator)
fmt.Printf("datesEqualUsingFunction = %v\n", datesEqualUsingFunction)
}
Вывод:
datesEqualUsingEqualOperator = false
datesEqualUsingFunction = true
Метод IsZero
func (t Time) IsZero() bool
IsZero сообщает, представляет ли t нулевой момент времени, January 1, year 1, 00:00:00 UTC.
Пример использования IsZero
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(1, time.January, 1, 00, 0, 0, 0, time.UTC)
fmt.Printf("Это нулевое значение Time %s\n", t.UTC())
fmt.Printf("Верно? %v\n", t.IsZero())
}
Вывод:
Это нулевое значение Time 0001-01-01 00:00:00 +0000 UTC
Верно? true
Читайте также:
- Пакет time в Golang, тип Time
- Пакет time в Golang, функции Date, Now, Unix
- Пакет time в Golang, тип Time, методы Add, AddDate
Комментариев нет:
Отправить комментарий