Go time formatting errors usually stem from using the wrong reference time string in time.Parse or time.Format. Go requires the specific reference time Mon Jan 2 15:04:05 MST 2006 (which equals Unix time 1323456789) to define your layout, rather than standard format codes like YYYY-MM-DD. Replace your custom layout string with the correct reference pattern matching your desired output.
import "time"
// Correct: Use the reference time pattern, not YYYY-MM-DD
layout := "2006-01-02 15:04:05"
t, err := time.Parse(layout, "2023-10-27 14:30:00")
if err != nil {
panic(err)
}
// Formatting works the same way
formatted := t.Format(layout)