service backend
This commit is contained in:
40
api/pkg/proto/timeutil/time.go
Normal file
40
api/pkg/proto/timeutil/time.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package timeutil
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
)
|
||||
|
||||
// UnixMilliToTime converts Unix milliseconds to time.Time
|
||||
func UnixMilliToTime(ms int64) time.Time {
|
||||
return time.Unix(0, ms*int64(time.Millisecond))
|
||||
}
|
||||
|
||||
// TimeToUnixMilli converts time.Time to Unix milliseconds
|
||||
func TimeToUnixMilli(t time.Time) int64 {
|
||||
return t.UnixMilli()
|
||||
}
|
||||
|
||||
// ProtoToTime converts a protobuf Timestamp to time.Time
|
||||
// Returns zero time if timestamp is nil
|
||||
func ProtoToTime(ts *timestamppb.Timestamp) time.Time {
|
||||
if ts == nil {
|
||||
return time.Time{}
|
||||
}
|
||||
return ts.AsTime()
|
||||
}
|
||||
|
||||
// TimeToProto converts time.Time to protobuf Timestamp
|
||||
// Returns nil for zero time
|
||||
func TimeToProto(t time.Time) *timestamppb.Timestamp {
|
||||
if t.IsZero() {
|
||||
return nil
|
||||
}
|
||||
return timestamppb.New(t)
|
||||
}
|
||||
|
||||
// NowProto returns current time as protobuf Timestamp
|
||||
func NowProto() *timestamppb.Timestamp {
|
||||
return timestamppb.Now()
|
||||
}
|
||||
Reference in New Issue
Block a user