На ходу я могу создать дату с этим кодом
time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
или с этим
t = time.Date(2009, time.February, 31, 0, 0, 0, 0, time.UTC)
fmt.Printf("February? %s\n", t.Local())
Но во втором случае я получаю
February? 2009-03-03 00:00:00 +0000 UTC
Как я могу проверить, являются ли параметры, использованные для создания новой даты, «действительными» (31 февраля этого года не существовало) и не меняются на другую дату?
Источник
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
fmt.Printf("Go launched at %s\n", t.Local())
t = time.Date(2009, time.February, 31, 0, 0, 0, 0, time.UTC)
fmt.Printf("February? %s\n", t.Local())
}
https://play.golang.org/p/w08Hp2v3Qu1