瀏覽代碼

date utils

marion 5 年之前
父節點
當前提交
e4180e71d4
共有 3 個文件被更改,包括 31 次插入19 次删除
  1. 11 7
      utils/date/date.go
  2. 9 5
      utils/date/datetime.go
  3. 11 7
      utils/date/time.go

+ 11 - 7
utils/date/date.go

@@ -1,10 +1,10 @@
 package date
 
 import (
-	"time"
+	"database/sql/driver"
 	"errors"
 	"strings"
-	"database/sql/driver"
+	"time"
 )
 
 type Date time.Time
@@ -35,7 +35,7 @@ func (t *Date) UnmarshalJSON(value []byte) error {
 	if err != nil {
 		return err
 	}
-	*t = Date(Date(tm).OfTime(0,0,0).OfNanosecond(0))
+	*t = Date(Date(tm).OfTime(0, 0, 0).OfNanosecond(0))
 	return nil
 }
 
@@ -54,11 +54,15 @@ func (t *Date) UnmarshalText(data []byte) error {
 }
 
 func (t Date) FromString(str string) Date {
+	return ParseDate(str)
+}
+
+func ParseDate(str string) Date {
 	tm, err := time.Parse(NormalDateFormat, str)
 	if nil != err {
 		return Unix(0, 0).ToDate()
 	}
-	return Date(Date(tm).OfTime(0,0,0).OfNanosecond(0))
+	return Date(Date(tm).OfTime(0, 0, 0).OfNanosecond(0))
 }
 
 func (t Date) String() string {
@@ -92,7 +96,7 @@ func (t Date) AppendFormat(b []byte, layout string) []byte {
 
 // 当前时间
 func Today() Date {
-	return Date(Date(time.Now()).OfTime(0,0,0).OfNanosecond(0))
+	return Date(Date(time.Now()).OfTime(0, 0, 0).OfNanosecond(0))
 }
 
 // 构造date.Time
@@ -107,7 +111,7 @@ func (t Date) ToDatetime() Datetime {
 
 // 转date.Date
 func AsDate(tm time.Time) Date {
-	return Date(Date(tm).OfTime(0,0,0).OfNanosecond(0))
+	return Date(Date(tm).OfTime(0, 0, 0).OfNanosecond(0))
 }
 
 // 转date.Time
@@ -227,7 +231,7 @@ func (t Date) AddDate(years int, months int, days int) Date {
 
 // 加时、分、秒
 func (t Date) AddTime(hours int, minutes int, seconds int) Datetime {
-	d := time.Duration(hours) * time.Hour + time.Duration(minutes) * time.Minute + time.Duration(seconds) * time.Second
+	d := time.Duration(hours)*time.Hour + time.Duration(minutes)*time.Minute + time.Duration(seconds)*time.Second
 	return t.Add(d)
 }
 

+ 9 - 5
utils/date/datetime.go

@@ -1,10 +1,10 @@
 package date
 
 import (
-	"time"
+	"database/sql/driver"
 	"errors"
 	"strings"
-	"database/sql/driver"
+	"time"
 )
 
 type Datetime time.Time
@@ -54,6 +54,10 @@ func (t *Datetime) UnmarshalText(data []byte) error {
 }
 
 func (t Datetime) FromString(str string) Datetime {
+	return ParseDatetime(str)
+}
+
+func ParseDatetime(str string) Datetime {
 	tm, err := time.Parse(NormalDatetimeFormat, str)
 	if nil != err {
 		return Unix(0, 0)
@@ -107,12 +111,12 @@ func AsDatetime(tm time.Time) Datetime {
 
 // 转date.Date
 func (t Datetime) ToDate() Date {
-	return Date(t.OfTime(0,0,0).OfNanosecond(0))
+	return Date(t.OfTime(0, 0, 0).OfNanosecond(0))
 }
 
 // 转date.Time
 func (t Datetime) ToTime() Time {
-	return Time(t.OfDate(1,time.January,1))
+	return Time(t.OfDate(1, time.January, 1))
 }
 
 // 转time.Time
@@ -227,7 +231,7 @@ func (t Datetime) AddDate(years int, months int, days int) Datetime {
 
 // 加时、分、秒
 func (t Datetime) AddTime(hours int, minutes int, seconds int) Datetime {
-	d := time.Duration(hours) * time.Hour + time.Duration(minutes) * time.Minute + time.Duration(seconds) * time.Second
+	d := time.Duration(hours)*time.Hour + time.Duration(minutes)*time.Minute + time.Duration(seconds)*time.Second
 	return t.Add(d)
 }
 

+ 11 - 7
utils/date/time.go

@@ -1,10 +1,10 @@
 package date
 
 import (
-	"time"
+	"database/sql/driver"
 	"errors"
 	"strings"
-	"database/sql/driver"
+	"time"
 )
 
 type Time time.Time
@@ -35,7 +35,7 @@ func (t *Time) UnmarshalJSON(value []byte) error {
 	if err != nil {
 		return err
 	}
-	*t = Time(Time(tm).OfDate(1,time.January,1))
+	*t = Time(Time(tm).OfDate(1, time.January, 1))
 	return nil
 }
 
@@ -54,11 +54,15 @@ func (t *Time) UnmarshalText(data []byte) error {
 }
 
 func (t Time) FromString(str string) Time {
+	return ParseTime(str)
+}
+
+func ParseTime(str string) Time {
 	tm, err := time.Parse(NormalTimeFormat, str)
 	if nil != err {
 		return Unix(0, 0).ToTime()
 	}
-	return Time(Time(tm).OfDate(1,time.January,1))
+	return Time(Time(tm).OfDate(1, time.January, 1))
 }
 
 func (t Time) String() string {
@@ -92,7 +96,7 @@ func (t Time) AppendFormat(b []byte, layout string) []byte {
 
 // 当前时间
 func CurrentTime() Time {
-	return Time(Time(time.Now()).OfDate(1,time.January,1))
+	return Time(Time(time.Now()).OfDate(1, time.January, 1))
 }
 
 // 构造date.Time
@@ -112,7 +116,7 @@ func (t Time) ToDate() Date {
 
 // 转date.Time
 func AsTime(tm time.Time) Time {
-	return Time(Time(tm).OfDate(1,time.January,1))
+	return Time(Time(tm).OfDate(1, time.January, 1))
 }
 
 // 转time.Time
@@ -227,7 +231,7 @@ func (t Time) AddDate(years int, months int, days int) Datetime {
 
 // 加时、分、秒
 func (t Time) AddTime(hours int, minutes int, seconds int) Datetime {
-	d := time.Duration(hours) * time.Hour + time.Duration(minutes) * time.Minute + time.Duration(seconds) * time.Second
+	d := time.Duration(hours)*time.Hour + time.Duration(minutes)*time.Minute + time.Duration(seconds)*time.Second
 	return t.Add(d)
 }