time: clarify documentation for allowed formats and add tests to prove them

The existing documentation for the time.Layout const states "Only these values
are recognized", but then doesn't include the numeric forms for month leading to
ambiguity and assumptions that may not be true. It's unclear, for example,
that space padding is only available for day of the month.

Finally I add tests to show the behaviors in specific scenarios.

Change-Id: I4e08a14834c17b6bdf3b6b47d39dafa8c1a138fb
Reviewed-on: https://go-review.googlesource.com/c/go/+/418875
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Marcus Watkins 2022-07-21 12:38:51 -06:00 committed by Gopher Robot
parent 37c8112b82
commit dcea1ee6e3
2 changed files with 11 additions and 4 deletions

View file

@ -53,10 +53,10 @@ import "errors"
// verbatim in the input to Parse.
//
// Year: "2006" "06"
// Month: "Jan" "January"
// Textual day of the week: "Mon" "Monday"
// Numeric day of the month: "2" "_2" "02"
// Numeric day of the year: "__2" "002"
// Month: "Jan" "January" "01" "1"
// Day of the week: "Mon" "Monday"
// Day of the month: "2" "_2" "02"
// Day of the year: "__2" "002"
// Hour: "15" "3" "03" (PM or AM)
// Minute: "4" "04"
// Second: "5" "05"

View file

@ -116,6 +116,13 @@ var formatTests = []FormatTest{
{"StampMicro", StampMicro, "Feb 4 21:00:57.012345"},
{"StampNano", StampNano, "Feb 4 21:00:57.012345600"},
{"YearDay", "Jan 2 002 __2 2", "Feb 4 035 35 4"},
{"Year", "2006 6 06 _6 __6 ___6", "2009 6 09 _6 __6 ___6"},
{"Month", "Jan January 1 01 _1", "Feb February 2 02 _2"},
{"DayOfMonth", "2 02 _2 __2", "4 04 4 35"},
{"DayOfWeek", "Mon Monday", "Wed Wednesday"},
{"Hour", "15 3 03 _3", "21 9 09 _9"},
{"Minute", "4 04 _4", "0 00 _0"},
{"Second", "5 05 _5", "57 57 _57"},
}
func TestFormat(t *testing.T) {