mirror of
https://github.com/duke-git/lancet.git
synced 2026-03-01 00:35:28 +08:00
feat: add new functions to datetime package
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
// Package datetime implements some functions to format date and time.
|
// Package datetime implements some functions to format date and time.
|
||||||
// Note:
|
// 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:ss"
|
||||||
// "yyyy-mm-dd hh:mm"
|
// "yyyy-mm-dd hh:mm"
|
||||||
// "yyyy-mm-dd hh"
|
// "yyyy-mm-dd hh"
|
||||||
@@ -18,14 +18,20 @@
|
|||||||
// "yyyy/mm"
|
// "yyyy/mm"
|
||||||
// "mm/dd"
|
// "mm/dd"
|
||||||
// "dd/mm/yy hh:mm:ss"
|
// "dd/mm/yy hh:mm:ss"
|
||||||
|
// "yyyymmdd"
|
||||||
|
// "mmddyy"
|
||||||
// "yyyy"
|
// "yyyy"
|
||||||
|
// "yy"
|
||||||
// "mm"
|
// "mm"
|
||||||
// "hh:mm:ss"
|
// "hh:mm:ss"
|
||||||
|
// "hh:mm"
|
||||||
// "mm:ss"
|
// "mm:ss"
|
||||||
|
|
||||||
package datetime
|
package datetime
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -47,9 +53,13 @@ func init() {
|
|||||||
"yyyy/mm": "2006/01",
|
"yyyy/mm": "2006/01",
|
||||||
"mm/dd": "01/02",
|
"mm/dd": "01/02",
|
||||||
"dd/mm/yy hh:mm:ss": "02/01/06 15:04:05",
|
"dd/mm/yy hh:mm:ss": "02/01/06 15:04:05",
|
||||||
|
"yyyymmdd": "20060102",
|
||||||
|
"mmddyy": "010206",
|
||||||
"yyyy": "2006",
|
"yyyy": "2006",
|
||||||
|
"yy": "06",
|
||||||
"mm": "01",
|
"mm": "01",
|
||||||
"hh:mm:ss": "15:04:05",
|
"hh:mm:ss": "15:04:05",
|
||||||
|
"hh:mm": "15:04",
|
||||||
"mm:ss": "04:05",
|
"mm:ss": "04:05",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -102,18 +112,39 @@ func GetNightTimestamp() int64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FormatTimeToStr convert time to string
|
// FormatTimeToStr convert time to string
|
||||||
func FormatTimeToStr(t time.Time, format string) string {
|
func FormatTimeToStr(t time.Time, format string, timezone ...string) string {
|
||||||
return t.Format(timeFormat[format])
|
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(tf)
|
||||||
|
}
|
||||||
|
return t.Format(tf)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FormatStrToTime convert string to time
|
// FormatStrToTime convert string to time
|
||||||
func FormatStrToTime(str, format string) (time.Time, error) {
|
func FormatStrToTime(str, format string, timezone ...string) (time.Time, error) {
|
||||||
v, ok := timeFormat[format]
|
tf, ok := timeFormat[strings.ToLower(format)]
|
||||||
if !ok {
|
if !ok {
|
||||||
return time.Time{}, fmt.Errorf("format %s not found", format)
|
return time.Time{}, fmt.Errorf("format %s not support", format)
|
||||||
}
|
}
|
||||||
|
|
||||||
return time.Parse(v, str)
|
if timezone != nil && timezone[0] != "" {
|
||||||
|
loc, err := time.LoadLocation(timezone[0])
|
||||||
|
if err != nil {
|
||||||
|
return time.Time{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return time.ParseInLocation(tf, str, loc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return time.Parse(tf, str)
|
||||||
}
|
}
|
||||||
|
|
||||||
// BeginOfMinute return beginning minute time of day
|
// BeginOfMinute return beginning minute time of day
|
||||||
@@ -210,3 +241,83 @@ func DayOfYear(t time.Time) int {
|
|||||||
func IsWeekend(t time.Time) bool {
|
func IsWeekend(t time.Time) bool {
|
||||||
return time.Saturday == t.Weekday() || time.Sunday == t.Weekday()
|
return time.Saturday == t.Weekday() || time.Sunday == t.Weekday()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NowDateOrTime return current datetime with specific format and timezone.
|
||||||
|
func NowDateOrTime(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 time.Now().In(loc).Format(tf)
|
||||||
|
}
|
||||||
|
|
||||||
|
return time.Now().Format(tf)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Timestamp return current second timestamp.
|
||||||
|
func Timestamp(timezone ...string) int64 {
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
|
if timezone != nil && timezone[0] != "" {
|
||||||
|
loc, err := time.LoadLocation(timezone[0])
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
t = t.In(loc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.Unix()
|
||||||
|
}
|
||||||
|
|
||||||
|
// TimestampMilli return current mill second timestamp.
|
||||||
|
func TimestampMilli(timezone ...string) int64 {
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
|
if timezone != nil && timezone[0] != "" {
|
||||||
|
loc, err := time.LoadLocation(timezone[0])
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
t = t.In(loc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return int64(time.Nanosecond) * t.UnixNano() / int64(time.Millisecond)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TimestampMicro return current micro second timestamp.
|
||||||
|
func TimestampMicro(timezone ...string) int64 {
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
|
if timezone != nil && timezone[0] != "" {
|
||||||
|
loc, err := time.LoadLocation(timezone[0])
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
t = t.In(loc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return int64(time.Nanosecond) * t.UnixNano() / int64(time.Microsecond)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TimestampNano return current nano second timestamp.
|
||||||
|
func TimestampNano(timezone ...string) int64 {
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
|
if timezone != nil && timezone[0] != "" {
|
||||||
|
loc, err := time.LoadLocation(timezone[0])
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
t = t.In(loc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.UnixNano()
|
||||||
|
}
|
||||||
|
|||||||
@@ -298,3 +298,38 @@ func TestIsWeekend(t *testing.T) {
|
|||||||
result2 := IsWeekend(date2)
|
result2 := IsWeekend(date2)
|
||||||
assert.Equal(false, result2)
|
assert.Equal(false, result2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNowDateOrTime(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
formats := []string{
|
||||||
|
"yyyy-mm-dd hh:mm:ss",
|
||||||
|
"yyyy-mm-dd",
|
||||||
|
"dd-mm-yy hh:mm:ss",
|
||||||
|
"yyyy/mm/dd hh:mm:ss",
|
||||||
|
"hh:mm:ss",
|
||||||
|
"yyyy/mm",
|
||||||
|
"yyyy-mm-dd hh",
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(formats); i++ {
|
||||||
|
result := NowDateOrTime(formats[i], "UTC")
|
||||||
|
t.Log(result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTimestamp(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
ts1 := Timestamp()
|
||||||
|
t.Log(ts1)
|
||||||
|
|
||||||
|
ts2 := TimestampMilli()
|
||||||
|
t.Log(ts2)
|
||||||
|
|
||||||
|
ts3 := TimestampMicro()
|
||||||
|
t.Log(ts3)
|
||||||
|
|
||||||
|
ts4 := TimestampNano()
|
||||||
|
t.Log(ts4)
|
||||||
|
}
|
||||||
|
|||||||
209
docs/datetime.md
209
docs/datetime.md
@@ -57,6 +57,11 @@ import (
|
|||||||
- [BetweenSeconds](#BetweenSeconds)
|
- [BetweenSeconds](#BetweenSeconds)
|
||||||
- [DayOfYear](#DayOfYear)
|
- [DayOfYear](#DayOfYear)
|
||||||
- [IsWeekend](#IsWeekend)
|
- [IsWeekend](#IsWeekend)
|
||||||
|
- [NowDateOrTime](#NowDateOrTime)
|
||||||
|
- [Timestamp](#Timestamp)
|
||||||
|
- [TimestampMilli](#TimestampMilli)
|
||||||
|
- [TimestampMicro](#TimestampMicro)
|
||||||
|
- [TimestampNano](#TimestampNano)
|
||||||
|
|
||||||
<div STYLE="page-break-after: always;"></div>
|
<div STYLE="page-break-after: always;"></div>
|
||||||
|
|
||||||
@@ -64,7 +69,7 @@ import (
|
|||||||
|
|
||||||
## Note:
|
## 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:ss
|
||||||
- yyyy-mm-dd hh:mm
|
- yyyy-mm-dd hh:mm
|
||||||
@@ -75,14 +80,18 @@ import (
|
|||||||
- dd-mm-yy hh:mm:ss
|
- dd-mm-yy hh:mm:ss
|
||||||
- yyyy/mm/dd hh:mm:ss
|
- yyyy/mm/dd hh:mm:ss
|
||||||
- yyyy/mm/dd hh:mm
|
- yyyy/mm/dd hh:mm
|
||||||
- yyyy-mm-dd hh
|
- yyyy/mm/dd hh
|
||||||
- yyyy/mm/dd
|
- yyyy/mm/dd
|
||||||
- yyyy/mm
|
- yyyy/mm
|
||||||
- mm/dd
|
- mm/dd
|
||||||
- dd/mm/yy hh:mm:ss
|
- dd/mm/yy hh:mm:ss
|
||||||
|
- yyyymmdd
|
||||||
|
- mmddyy
|
||||||
- yyyy
|
- yyyy
|
||||||
|
- yy
|
||||||
- mm
|
- mm
|
||||||
- hh:mm:ss
|
- hh:mm:ss
|
||||||
|
- hh:mm
|
||||||
- mm:ss
|
- mm:ss
|
||||||
|
|
||||||
### <span id="AddDay">AddDay</span>
|
### <span id="AddDay">AddDay</span>
|
||||||
@@ -1036,7 +1045,6 @@ func main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### <span id="DayOfYear">DayOfYear</span>
|
### <span id="DayOfYear">DayOfYear</span>
|
||||||
|
|
||||||
<p>Returns which day of the year the parameter date `t` is.</p>
|
<p>Returns which day of the year the parameter date `t` is.</p>
|
||||||
@@ -1157,3 +1165,198 @@ func main() {
|
|||||||
// false
|
// false
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### <span id="IsWeekend">IsWeekend</span>
|
||||||
|
|
||||||
|
<p>Checks if passed time is weekend or not.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsWeekend(t time.Time) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
date1 := time.Date(2023, 06, 03, 0, 0, 0, 0, time.Local)
|
||||||
|
date2 := time.Date(2023, 06, 04, 0, 0, 0, 0, time.Local)
|
||||||
|
date3 := time.Date(2023, 06, 02, 0, 0, 0, 0, time.Local)
|
||||||
|
|
||||||
|
result1 := datetime.IsWeekend(date1)
|
||||||
|
result2 := datetime.IsWeekend(date2)
|
||||||
|
result3 := datetime.IsWeekend(date3)
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="NowDateOrTime">NowDateOrTime</span>
|
||||||
|
|
||||||
|
<p>Return current datetime with specific format and timezone.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func NowDateOrTime(format string, timezone ...string) string
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := datetime.NowDateOrTime("yyyy-mm-dd hh:mm:ss")
|
||||||
|
|
||||||
|
result2 := datetime.NowDateOrTime("yyyy-mm-dd hh:mm:ss", "EST")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 2023-07-26 15:01:30
|
||||||
|
// 2023-07-26 02:01:30
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="Timestamp">Timestamp</span>
|
||||||
|
|
||||||
|
<p>Return current second timestamp.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func Timestamp(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.Timestamp()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### <span id="TimestampMilli">TimestampMilli</span>
|
||||||
|
|
||||||
|
<p>Return current mill second timestamp.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TimestampMilli(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.TimestampMilli()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051331
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="TimestampMicro">TimestampMicro</span>
|
||||||
|
|
||||||
|
<p>Return current micro second timestamp.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TimestampMicro(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.TimestampMicro()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051331784
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="TimestampNano">TimestampNano</span>
|
||||||
|
|
||||||
|
<p>Return current nano second timestamp.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TimestampNano(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.TimestampNano()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051331788000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -57,7 +57,11 @@ import (
|
|||||||
- [BetweenSeconds](#BetweenSeconds)
|
- [BetweenSeconds](#BetweenSeconds)
|
||||||
- [DayOfYear](#DayOfYear)
|
- [DayOfYear](#DayOfYear)
|
||||||
- [IsWeekend](#IsWeekend)
|
- [IsWeekend](#IsWeekend)
|
||||||
|
- [NowDateOrTime](#NowDateOrTime)
|
||||||
|
- [Timestamp](#Timestamp)
|
||||||
|
- [TimestampMilli](#TimestampMilli)
|
||||||
|
- [TimestampMicro](#TimestampMicro)
|
||||||
|
- [TimestampNano](#TimestampNano)
|
||||||
|
|
||||||
<div STYLE="page-break-after: always;"></div>
|
<div STYLE="page-break-after: always;"></div>
|
||||||
|
|
||||||
@@ -65,7 +69,7 @@ import (
|
|||||||
|
|
||||||
## 注:
|
## 注:
|
||||||
|
|
||||||
1. 方法 FormatTimeToStr 和 FormatStrToTime 中的 format 参数值需要传以下类型之一:
|
1. 函数中`format`参数值需要传以下值之一 (忽略大小写):
|
||||||
|
|
||||||
- yyyy-mm-dd hh:mm:ss
|
- yyyy-mm-dd hh:mm:ss
|
||||||
- yyyy-mm-dd hh:mm
|
- yyyy-mm-dd hh:mm
|
||||||
@@ -76,14 +80,18 @@ import (
|
|||||||
- dd-mm-yy hh:mm:ss
|
- dd-mm-yy hh:mm:ss
|
||||||
- yyyy/mm/dd hh:mm:ss
|
- yyyy/mm/dd hh:mm:ss
|
||||||
- yyyy/mm/dd hh:mm
|
- yyyy/mm/dd hh:mm
|
||||||
- yyyy-mm-dd hh
|
- yyyy/mm/dd hh
|
||||||
- yyyy/mm/dd
|
- yyyy/mm/dd
|
||||||
- yyyy/mm
|
- yyyy/mm
|
||||||
- mm/dd
|
- mm/dd
|
||||||
- dd/mm/yy hh:mm:ss
|
- dd/mm/yy hh:mm:ss
|
||||||
|
- yyyymmdd
|
||||||
|
- mmddyy
|
||||||
- yyyy
|
- yyyy
|
||||||
|
- yy
|
||||||
- mm
|
- mm
|
||||||
- hh:mm:ss
|
- hh:mm:ss
|
||||||
|
- hh:mm
|
||||||
- mm:ss
|
- mm:ss
|
||||||
|
|
||||||
### <span id="AddDay">AddDay</span>
|
### <span id="AddDay">AddDay</span>
|
||||||
@@ -1077,3 +1085,198 @@ func main() {
|
|||||||
// 0
|
// 0
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### <span id="IsWeekend">IsWeekend</span>
|
||||||
|
|
||||||
|
<p>判断日期是否是周末。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsWeekend(t time.Time) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
date1 := time.Date(2023, 06, 03, 0, 0, 0, 0, time.Local)
|
||||||
|
date2 := time.Date(2023, 06, 04, 0, 0, 0, 0, time.Local)
|
||||||
|
date3 := time.Date(2023, 06, 02, 0, 0, 0, 0, time.Local)
|
||||||
|
|
||||||
|
result1 := datetime.IsWeekend(date1)
|
||||||
|
result2 := datetime.IsWeekend(date2)
|
||||||
|
result3 := datetime.IsWeekend(date3)
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="NowDateOrTime">NowDateOrTime</span>
|
||||||
|
|
||||||
|
<p>根据指定的格式和时区返回当前时间字符串。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func NowDateOrTime(format string, timezone ...string) string
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>实例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := datetime.NowDateOrTime("yyyy-mm-dd hh:mm:ss")
|
||||||
|
|
||||||
|
result2 := datetime.NowDateOrTime("yyyy-mm-dd hh:mm:ss", "EST")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 2023-07-26 15:01:30
|
||||||
|
// 2023-07-26 02:01:30
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="Timestamp">Timestamp</span>
|
||||||
|
|
||||||
|
<p>返回当前秒级时间戳。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func Timestamp(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>实例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.Timestamp()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### <span id="TimestampMilli">TimestampMilli</span>
|
||||||
|
|
||||||
|
<p>返回当前毫秒级时间戳。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TimestampMilli(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>实例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.TimestampMilli()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051331
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="TimestampMicro">TimestampMicro</span>
|
||||||
|
|
||||||
|
<p>返回当前微秒级时间戳。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TimestampMicro(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>实例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.TimestampMicro()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051331784
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="TimestampNano">TimestampNano</span>
|
||||||
|
|
||||||
|
<p>返回当前纳秒级时间戳。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TimestampNano(timezone ...string) int64
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>实例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/datetime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ts := datetime.TimestampNano()
|
||||||
|
|
||||||
|
fmt.Println(ts)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 1690363051331788000
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user