From dcea1ee6e3b805c2967950d48fddff5c69d2af85 Mon Sep 17 00:00:00 2001 From: Marcus Watkins Date: Thu, 21 Jul 2022 12:38:51 -0600 Subject: [PATCH] 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 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Reviewed-by: Cherry Mui Auto-Submit: Ian Lance Taylor TryBot-Result: Gopher Robot Run-TryBot: Ian Lance Taylor --- src/time/format.go | 8 ++++---- src/time/format_test.go | 7 +++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/time/format.go b/src/time/format.go index 5f696189ff..8431ff89b4 100644 --- a/src/time/format.go +++ b/src/time/format.go @@ -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" diff --git a/src/time/format_test.go b/src/time/format_test.go index ab72fae323..9ae2b8017a 100644 --- a/src/time/format_test.go +++ b/src/time/format_test.go @@ -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) {