feat: time trans utils

This commit is contained in:
Bobo
2025-05-18 21:41:00 +08:00
parent 3b2678de10
commit 9035e79520
3 changed files with 89 additions and 1 deletions

View File

@@ -1,4 +1,4 @@
git tag v1.1.21 git tag v1.1.22
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

View File

@@ -48,6 +48,46 @@ func StringToUnixMilliInt64Ptr(tm *string) *int64 {
return &unixTime return &unixTime
} }
// UnixMilliToTimePtr 毫秒时间戳 -> 时间
func UnixMilliToTimePtr(tm *int64) *time.Time {
if tm == nil {
return nil
}
unixMilli := time.UnixMilli(*tm)
return &unixMilli
}
// TimeToUnixMilliInt64Ptr 时间 -> 毫秒时间戳
func TimeToUnixMilliInt64Ptr(tm *time.Time) *int64 {
if tm == nil {
return nil
}
unixTime := tm.UnixMilli()
return &unixTime
}
// UnixSecondToTimePtr 秒时间戳 -> 时间
func UnixSecondToTimePtr(tm *int64) *time.Time {
if tm == nil {
return nil
}
unixMilli := time.Unix(*tm, 0)
return &unixMilli
}
// TimeToUnixSecondInt64Ptr 时间 -> 秒时间戳
func TimeToUnixSecondInt64Ptr(tm *time.Time) *int64 {
if tm == nil {
return nil
}
unixTime := tm.Unix()
return &unixTime
}
// StringTimeToTime 时间字符串 -> 时间 // StringTimeToTime 时间字符串 -> 时间
func StringTimeToTime(str *string) *time.Time { func StringTimeToTime(str *string) *time.Time {
if str == nil { if str == nil {

View File

@@ -305,3 +305,51 @@ func TestDurationpbSecond(t *testing.T) {
result = DurationpbSecond(nil) result = DurationpbSecond(nil)
assert.Nil(t, result, "空输入应返回nil") assert.Nil(t, result, "空输入应返回nil")
} }
func TestUnixMilliToTimePtr(t *testing.T) {
// 测试有效输入
now := time.Now().UnixMilli()
result := UnixMilliToTimePtr(&now)
assert.NotNil(t, result)
assert.Equal(t, time.UnixMilli(now), *result)
// 测试空输入
result = UnixMilliToTimePtr(nil)
assert.Nil(t, result)
}
func TestTimeToUnixMilliInt64Ptr(t *testing.T) {
// 测试有效输入
now := time.Now()
result := TimeToUnixMilliInt64Ptr(&now)
assert.NotNil(t, result)
assert.Equal(t, now.UnixMilli(), *result)
// 测试空输入
result = TimeToUnixMilliInt64Ptr(nil)
assert.Nil(t, result)
}
func TestUnixSecondToTimePtr(t *testing.T) {
// 测试有效输入
now := time.Now().Unix()
result := UnixSecondToTimePtr(&now)
assert.NotNil(t, result)
assert.Equal(t, time.Unix(now, 0), *result)
// 测试空输入
result = UnixSecondToTimePtr(nil)
assert.Nil(t, result)
}
func TestTimeToUnixSecondInt64Ptr(t *testing.T) {
// 测试有效输入
now := time.Now()
result := TimeToUnixSecondInt64Ptr(&now)
assert.NotNil(t, result)
assert.Equal(t, now.Unix(), *result)
// 测试空输入
result = TimeToUnixSecondInt64Ptr(nil)
assert.Nil(t, result)
}