From 2a303d5e4bca955356a9af69f6f0d084573e08f4 Mon Sep 17 00:00:00 2001 From: dudaodong Date: Wed, 26 Jul 2023 15:28:20 +0800 Subject: [PATCH] doc: update format --- datetime/datetime.go | 27 ++++++++++++++++++++------- docs/datetime.md | 11 ++++++----- docs/datetime_zh-CN.md | 9 ++++++--- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/datetime/datetime.go b/datetime/datetime.go index 3a2c87b..c517ffa 100644 --- a/datetime/datetime.go +++ b/datetime/datetime.go @@ -3,7 +3,7 @@ // Package datetime implements some functions to format date and time. // Note: -// 1. `format` param in FormatTimeToStr function should be as flow: +// 1. `format` param in FormatTimeToStr function should be as flow (case no sensitive): // "yyyy-mm-dd hh:mm:ss" // "yyyy-mm-dd hh:mm" // "yyyy-mm-dd hh" @@ -18,14 +18,19 @@ // "yyyy/mm" // "mm/dd" // "dd/mm/yy hh:mm:ss" +// "yyyymmdd" +// "mmddyy" // "yyyy" +// "yy" // "mm" // "hh:mm:ss" +// "hh:mm" // "mm:ss" package datetime import ( "fmt" + "strings" "time" ) @@ -47,7 +52,10 @@ func init() { "yyyy/mm": "2006/01", "mm/dd": "01/02", "dd/mm/yy hh:mm:ss": "02/01/06 15:04:05", + "yyyymmdd": "20060102", + "mmddyy": "010206", "yyyy": "2006", + "yy": "06", "mm": "01", "hh:mm:ss": "15:04:05", "hh:mm": "15:04", @@ -126,22 +134,27 @@ func GetNightTimestamp() int64 { // FormatTimeToStr convert time to string. // Play: https://go.dev/play/p/_Ia7M8H_OvE func FormatTimeToStr(t time.Time, format string, timezone ...string) string { + tf, ok := timeFormat[strings.ToLower(format)] + if !ok { + return "" + } + if timezone != nil && timezone[0] != "" { loc, err := time.LoadLocation(timezone[0]) if err != nil { return "" } - return t.In(loc).Format(timeFormat[format]) + return t.In(loc).Format(tf) } - return t.Format(timeFormat[format]) + return t.Format(tf) } // FormatStrToTime convert string to time. // Play: https://go.dev/play/p/1h9FwdU8ql4 func FormatStrToTime(str, format string, timezone ...string) (time.Time, error) { - tf, ok := timeFormat[format] + tf, ok := timeFormat[strings.ToLower(format)] if !ok { - return time.Time{}, fmt.Errorf("format %s not found", format) + return time.Time{}, fmt.Errorf("format %s not support", format) } if timezone != nil && timezone[0] != "" { @@ -286,8 +299,8 @@ func IsWeekend(t time.Time) bool { // NowDateOrTime return current datetime with specific format and timezone. // Play: todo func NowDateOrTime(format string, timezone ...string) string { - tf := timeFormat[format] - if tf == "" { + tf, ok := timeFormat[strings.ToLower(format)] + if !ok { return "" } diff --git a/docs/datetime.md b/docs/datetime.md index f63f63b..46a1392 100644 --- a/docs/datetime.md +++ b/docs/datetime.md @@ -68,7 +68,7 @@ import ( ## Note: -1. 'format' string param in func FormatTimeToStr and FormatStrToTime function should be one of flows: +1. In below functions, the `format` string param should be one of flows value (case no sensitive): - yyyy-mm-dd hh:mm:ss - yyyy-mm-dd hh:mm @@ -79,14 +79,18 @@ import ( - dd-mm-yy hh:mm:ss - yyyy/mm/dd hh:mm:ss - yyyy/mm/dd hh:mm -- yyyy-mm-dd hh +- yyyy/mm/dd hh - yyyy/mm/dd - yyyy/mm - mm/dd - dd/mm/yy hh:mm:ss +- yyyymmdd +- mmddyy - yyyy +- yy - mm - hh:mm:ss +- hh:mm - mm:ss ### AddDay @@ -1186,7 +1190,6 @@ func main() { } ``` - ### BetweenSeconds

Return the number of seconds between two times.

@@ -1224,7 +1227,6 @@ func main() { } ``` - ### DayOfYear

Returns which day of the year the parameter date `t` is.

@@ -1266,7 +1268,6 @@ func main() { } ``` - ### IsWeekend

Checks if passed time is weekend or not.

diff --git a/docs/datetime_zh-CN.md b/docs/datetime_zh-CN.md index 9c9d1df..962783b 100644 --- a/docs/datetime_zh-CN.md +++ b/docs/datetime_zh-CN.md @@ -61,14 +61,13 @@ import ( - [IsWeekend](#IsWeekend) - [NowDateOrTime](#NowDateOrTime) -
## 文档 ## 注: -1. 方法 FormatTimeToStr 和 FormatStrToTime 中的 format 参数值需要传以下类型之一: +1. 函数中`format`参数值需要传以下值之一 (忽略大小写): - yyyy-mm-dd hh:mm:ss - yyyy-mm-dd hh:mm @@ -79,14 +78,18 @@ import ( - dd-mm-yy hh:mm:ss - yyyy/mm/dd hh:mm:ss - yyyy/mm/dd hh:mm -- yyyy-mm-dd hh +- yyyy/mm/dd hh - yyyy/mm/dd - yyyy/mm - mm/dd - dd/mm/yy hh:mm:ss +- yyyymmdd +- mmddyy - yyyy +- yy - mm - hh:mm:ss +- hh:mm - mm:ss ### AddDay