func (d LocalDate) In(loc *time.Location) time.Time {
	return time.Date(d.Year, d.Month, d.Day, 0, 0, 0, 0, loc)
}
In returns the time corresponding to time 00:00:00 of the date in the location.

In is always consistent with time.LocalDate, even when time.LocalDate returns a time
on a different day. For example, if loc is America/Indiana/Vincennes, then both
time.LocalDate(1955, time.May, 1, 0, 0, 0, 0, loc)
and
civil.LocalDate{Year: 1955, Month: time.May, Day: 1}.In(loc)
return 23:00:00 on April 30, 1955.

In panics if loc is nil.
package toml
import (
	"fmt"
	"time"
)
type LocalDate struct {
	Year  int         
	Month time.Month  
	Day   int         
}
func LocalDateOf(t time.Time) LocalDate {
	var d LocalDate
	d.Year, d.Month, d.Day = t.Date()
	return d
}
func ParseLocalDate(s string) (LocalDate, error) {
	t, err := time.Parse("2006-01-02", s)
	if err != nil {
		return LocalDate{}, err
	}
	return LocalDateOf(t), nil
}
func (d LocalDate) String() string {
	return fmt.Sprintf("%04d-%02d-%02d", d.Year, d.Month, d.Day)
}
func (d LocalDate) IsValid() bool {
	return LocalDateOf(d.In(time.UTC)) == d
}