From 24b570354caee33d4fb3934ce7ef1cc97fb403fd Mon Sep 17 00:00:00 2001 From: cuiweixie Date: Tue, 26 Apr 2022 23:55:11 +0000 Subject: time: document hhmmss formats Fixes #52516 Change-Id: I173fdb09c245563e09be4e1aacfd374c3a764d74 GitHub-Last-Rev: 14a81e50616e0f268fee9323d0621de861885475 GitHub-Pull-Request: golang/go#52538 Reviewed-on: https://go-review.googlesource.com/c/go/+/402058 Reviewed-by: Bryan Mills Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Auto-Submit: Ian Lance Taylor TryBot-Result: Gopher Robot --- src/time/example_test.go | 11 +++++++++++ src/time/format.go | 16 ++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/time/example_test.go b/src/time/example_test.go index ec2259b1bae..059c6310a63 100644 --- a/src/time/example_test.go +++ b/src/time/example_test.go @@ -212,6 +212,11 @@ func ExampleTime_Format() { panic(err) } + tz, err := time.LoadLocation("Asia/Shanghai") + if err != nil { // Always check errors even if they should not happen. + panic(err) + } + // time.Time's Stringer method is useful without any format. fmt.Println("default format:", t) @@ -221,6 +226,10 @@ func ExampleTime_Format() { // The time zone attached to the time value affects its output. fmt.Println("Same, in UTC:", t.UTC().Format(time.UnixDate)) + fmt.Println("in Shanghai with seconds:", t.In(tz).Format("2006-01-02T15:04:05 -070000")) + + fmt.Println("in Shanghai with colon seconds:", t.In(tz).Format("2006-01-02T15:04:05 -07:00:00")) + // The rest of this function demonstrates the properties of the // layout string used in the format. @@ -286,6 +295,8 @@ func ExampleTime_Format() { // default format: 2015-02-25 11:06:39 -0800 PST // Unix format: Wed Feb 25 11:06:39 PST 2015 // Same, in UTC: Wed Feb 25 19:06:39 UTC 2015 + //in Shanghai with seconds: 2015-02-26T03:06:39 +080000 + //in Shanghai with colon seconds: 2015-02-26T03:06:39 +08:00:00 // // Formats: // diff --git a/src/time/format.go b/src/time/format.go index 2f66df668b7..5f696189ff1 100644 --- a/src/time/format.go +++ b/src/time/format.go @@ -64,17 +64,21 @@ import "errors" // // Numeric time zone offsets format as follows: // -// "-0700" ±hhmm -// "-07:00" ±hh:mm -// "-07" ±hh +// "-0700" ±hhmm +// "-07:00" ±hh:mm +// "-07" ±hh +// "-070000" ±hhmmss +// "-07:00:00" ±hh:mm:ss // // Replacing the sign in the format with a Z triggers // the ISO 8601 behavior of printing Z instead of an // offset for the UTC zone. Thus: // -// "Z0700" Z or ±hhmm -// "Z07:00" Z or ±hh:mm -// "Z07" Z or ±hh +// "Z0700" Z or ±hhmm +// "Z07:00" Z or ±hh:mm +// "Z07" Z or ±hh +// "Z070000" Z or ±hhmmss +// "Z07:00:00" Z or ±hh:mm:ss // // Within the format string, the underscores in "_2" and "__2" represent spaces // that may be replaced by digits if the following number has multiple digits, -- cgit v1.2.3-54-g00ecf