Compare commits
5 Commits
entgo/v1.1
...
copierutil
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f713e489b | ||
|
|
ace6bd4237 | ||
|
|
3ec9bbbd27 | ||
|
|
faa5817857 | ||
|
|
89a69a9d4d |
@@ -42,11 +42,15 @@ var TimestamppbToTimeConverter = copier.TypeConverter{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TimeToString(tm *time.Time) *string {
|
||||||
|
return timeutil.TimeToString(tm, timeutil.ISO8601)
|
||||||
|
}
|
||||||
|
|
||||||
func NewTimeStringConverterPair() []copier.TypeConverter {
|
func NewTimeStringConverterPair() []copier.TypeConverter {
|
||||||
srcType := &time.Time{}
|
srcType := &time.Time{}
|
||||||
dstType := trans.Ptr("")
|
dstType := trans.Ptr("")
|
||||||
|
|
||||||
fromFn := timeutil.TimeToTimeString
|
fromFn := TimeToString
|
||||||
toFn := timeutil.StringTimeToTime
|
toFn := timeutil.StringTimeToTime
|
||||||
|
|
||||||
return NewGenericTypeConverterPair(srcType, dstType, fromFn, toFn)
|
return NewGenericTypeConverterPair(srcType, dstType, fromFn, toFn)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ toolchain go1.24.3
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/jinzhu/copier v0.4.0
|
github.com/jinzhu/copier v0.4.0
|
||||||
github.com/tx7do/go-utils v1.1.24
|
github.com/tx7do/go-utils v1.1.27
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ require (
|
|||||||
github.com/go-kratos/kratos/v2 v2.8.4
|
github.com/go-kratos/kratos/v2 v2.8.4
|
||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
github.com/stretchr/testify v1.10.0
|
github.com/stretchr/testify v1.10.0
|
||||||
github.com/tx7do/go-utils v1.1.24
|
github.com/tx7do/go-utils v1.1.27
|
||||||
go.opentelemetry.io/otel v1.36.0
|
go.opentelemetry.io/otel v1.36.0
|
||||||
google.golang.org/protobuf v1.36.6
|
google.golang.org/protobuf v1.36.6
|
||||||
)
|
)
|
||||||
|
|||||||
6
tag.bat
6
tag.bat
@@ -1,12 +1,12 @@
|
|||||||
git tag v1.1.24
|
git tag v1.1.27
|
||||||
|
|
||||||
git tag bank_card/v1.1.5
|
git tag bank_card/v1.1.5
|
||||||
git tag geoip/v1.1.5
|
git tag geoip/v1.1.5
|
||||||
git tag translator/v1.1.2
|
git tag translator/v1.1.2
|
||||||
git tag copierutil/v0.0.4
|
git tag copierutil/v0.0.5
|
||||||
git tag jwtutil/v0.0.2
|
git tag jwtutil/v0.0.2
|
||||||
|
|
||||||
git tag entgo/v1.1.29
|
git tag entgo/v1.1.30
|
||||||
git tag gorm/v1.1.6
|
git tag gorm/v1.1.6
|
||||||
|
|
||||||
git push origin --tags
|
git push origin --tags
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ func timeMarshalJSON(t time.Time, layout string) ([]byte, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ParseSlice(layout string, strings []string) ([]time.Time, error) {
|
func ParseSlice(layout string, strings []string) ([]time.Time, error) {
|
||||||
times := []time.Time{}
|
var times []time.Time
|
||||||
for _, raw := range strings {
|
for _, raw := range strings {
|
||||||
t, err := time.Parse(layout, raw)
|
t, err := time.Parse(layout, raw)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -33,10 +33,7 @@ func UnixMilliToStringPtr(milli *int64) *string {
|
|||||||
|
|
||||||
tm := time.UnixMilli(*milli)
|
tm := time.UnixMilli(*milli)
|
||||||
|
|
||||||
// 设置默认时区
|
str := tm.In(GetDefaultTimeLocation()).Format(TimeLayout)
|
||||||
tm.In(GetDefaultTimeLocation())
|
|
||||||
|
|
||||||
str := tm.Format(TimeLayout)
|
|
||||||
return &str
|
return &str
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,10 +130,7 @@ func TimeToTimeString(tm *time.Time) *string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置默认时区
|
return trans.String(tm.In(GetDefaultTimeLocation()).Format(TimeLayout))
|
||||||
tm.In(GetDefaultTimeLocation())
|
|
||||||
|
|
||||||
return trans.String(tm.Format(TimeLayout))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// StringDateToTime 字符串 -> 时间
|
// StringDateToTime 字符串 -> 时间
|
||||||
@@ -175,10 +169,34 @@ func TimeToDateString(tm *time.Time) *string {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置默认时区
|
return trans.String(tm.In(GetDefaultTimeLocation()).Format(DateLayout))
|
||||||
tm.In(GetDefaultTimeLocation())
|
}
|
||||||
|
|
||||||
return trans.String(tm.Format(DateLayout))
|
func StringToTime(str *string, layout string) *time.Time {
|
||||||
|
if str == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if len(*str) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
var theTime time.Time
|
||||||
|
|
||||||
|
theTime, err = time.ParseInLocation(layout, *str, GetDefaultTimeLocation())
|
||||||
|
if err == nil {
|
||||||
|
return &theTime
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func TimeToString(tm *time.Time, layout string) *string {
|
||||||
|
if tm == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return trans.String(tm.Format(layout))
|
||||||
}
|
}
|
||||||
|
|
||||||
// TimestamppbToTime timestamppb.Timestamp -> time.Time
|
// TimestamppbToTime timestamppb.Timestamp -> time.Time
|
||||||
|
|||||||
@@ -149,6 +149,49 @@ func TestTimeToDateString(t *testing.T) {
|
|||||||
assert.Nil(t, result)
|
assert.Nil(t, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestTimeToString(t *testing.T) {
|
||||||
|
now := time.Now()
|
||||||
|
|
||||||
|
fmt.Println(*TimeToString(&now, DateLayout))
|
||||||
|
fmt.Println(*TimeToString(&now, ISO8601))
|
||||||
|
fmt.Println(*TimeToString(&now, ISO8601TZHour))
|
||||||
|
fmt.Println(*TimeToString(&now, ISO8601NoTZ))
|
||||||
|
|
||||||
|
layout := "2006-01-02"
|
||||||
|
expected := now.Format(layout)
|
||||||
|
result := TimeToString(&now, layout)
|
||||||
|
assert.NotNil(t, result)
|
||||||
|
assert.Equal(t, expected, *result)
|
||||||
|
|
||||||
|
// 测试空输入
|
||||||
|
result = TimeToString(nil, layout)
|
||||||
|
assert.Nil(t, result)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStringToTime(t *testing.T) {
|
||||||
|
// 测试有效时间字符串输入
|
||||||
|
input := "2023-03-09 12:34:56"
|
||||||
|
layout := "2006-01-02 15:04:05"
|
||||||
|
expected := time.Date(2023, 3, 9, 12, 34, 56, 0, GetDefaultTimeLocation())
|
||||||
|
result := StringToTime(&input, layout)
|
||||||
|
assert.NotNil(t, result)
|
||||||
|
assert.Equal(t, expected, *result)
|
||||||
|
|
||||||
|
// 测试无效时间字符串输入
|
||||||
|
invalidInput := "invalid-date"
|
||||||
|
result = StringToTime(&invalidInput, layout)
|
||||||
|
assert.Nil(t, result)
|
||||||
|
|
||||||
|
// 测试空字符串输入
|
||||||
|
emptyInput := ""
|
||||||
|
result = StringToTime(&emptyInput, layout)
|
||||||
|
assert.Nil(t, result)
|
||||||
|
|
||||||
|
// 测试空指针输入
|
||||||
|
result = StringToTime(nil, layout)
|
||||||
|
assert.Nil(t, result)
|
||||||
|
}
|
||||||
|
|
||||||
func TestTimestamppbToTime(t *testing.T) {
|
func TestTimestamppbToTime(t *testing.T) {
|
||||||
// 测试有效输入
|
// 测试有效输入
|
||||||
timestamp := timestamppb.Now()
|
timestamp := timestamppb.Now()
|
||||||
|
|||||||
Reference in New Issue
Block a user