gpt4 book ai didi

go - 如何将 Protobuf 的时间戳库与 Go 的时间库一起使用

转载 作者:IT王子 更新时间:2023-10-29 02:09:14 29 4
gpt4 key购买 nike

github.com/golang/protobuf/ptypes/timestamp 导入提供了 Protobuf 的 native 时间戳实现,可以在您的 protobuf 定义中使用来表示时间。仔细查看所提供的 timestamp.pb.go 文件,它似乎生成了一些 struct,如下所示:

type Timestamp struct {
Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}

timestamp.pb.go 中有一些注释示例,但我不是很了解。

使用它与 go 的时间 library .我不确定我应该如何设置 Timestamp 中的字段。我假设这两种类型之间的“转换”并不困难,但我对 Go 和 protobuf 不陌生。任何帮助将不胜感激。

最佳答案

您必须手动将其转换为时间。时间。

对于非指针值:

if !u.Timestamp.IsZero() {
timestamp, _ := ptypes.TimestampProto(u.Timestamp)
up.Timestamp = timestamp
}

对于指针值:

if u.Timestamp != nil {
timestamp, _ := ptypes.TimestampProto(*u.Timestamp)
up.Timestamp = timestamp
}

关于go - 如何将 Protobuf 的时间戳库与 Go 的时间库一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52088282/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com