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 {
|
||||
srcType := &time.Time{}
|
||||
dstType := trans.Ptr("")
|
||||
|
||||
fromFn := timeutil.TimeToTimeString
|
||||
fromFn := TimeToString
|
||||
toFn := timeutil.StringTimeToTime
|
||||
|
||||
return NewGenericTypeConverterPair(srcType, dstType, fromFn, toFn)
|
||||
|
||||
@@ -6,7 +6,7 @@ toolchain go1.24.3
|
||||
|
||||
require (
|
||||
github.com/jinzhu/copier v0.4.0
|
||||
github.com/tx7do/go-utils v1.1.24
|
||||
github.com/tx7do/go-utils v1.1.27
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
@@ -11,7 +11,7 @@ require (
|
||||
github.com/go-kratos/kratos/v2 v2.8.4
|
||||
github.com/google/uuid v1.6.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
|
||||
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 geoip/v1.1.5
|
||||
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 entgo/v1.1.29
|
||||
git tag entgo/v1.1.30
|
||||
git tag gorm/v1.1.6
|
||||
|
||||
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) {
|
||||
times := []time.Time{}
|
||||
var times []time.Time
|
||||
for _, raw := range strings {
|
||||
t, err := time.Parse(layout, raw)
|
||||
if err != nil {
|
||||
|
||||
@@ -33,10 +33,7 @@ func UnixMilliToStringPtr(milli *int64) *string {
|
||||
|
||||
tm := time.UnixMilli(*milli)
|
||||
|
||||
// 设置默认时区
|
||||
tm.In(GetDefaultTimeLocation())
|
||||
|
||||
str := tm.Format(TimeLayout)
|
||||
str := tm.In(GetDefaultTimeLocation()).Format(TimeLayout)
|
||||
return &str
|
||||
}
|
||||
|
||||
@@ -133,10 +130,7 @@ func TimeToTimeString(tm *time.Time) *string {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 设置默认时区
|
||||
tm.In(GetDefaultTimeLocation())
|
||||
|
||||
return trans.String(tm.Format(TimeLayout))
|
||||
return trans.String(tm.In(GetDefaultTimeLocation()).Format(TimeLayout))
|
||||
}
|
||||
|
||||
// StringDateToTime 字符串 -> 时间
|
||||
@@ -175,10 +169,34 @@ func TimeToDateString(tm *time.Time) *string {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 设置默认时区
|
||||
tm.In(GetDefaultTimeLocation())
|
||||
return trans.String(tm.In(GetDefaultTimeLocation()).Format(DateLayout))
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -149,6 +149,49 @@ func TestTimeToDateString(t *testing.T) {
|
||||
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) {
|
||||
// 测试有效输入
|
||||
timestamp := timestamppb.Now()
|
||||
|
||||
Reference in New Issue
Block a user