ZBLOG

如下 golang 代码,T 是 uint32 , t.Unix() 是 int64 ,这个代码不正确 import ( "time" "go.mongodb.org/mongo-driver/bson/primitive" ) func ConvertToTimestamp(seconds int64) primitive.Timestamp { t := time.Unix(seconds, 0) return primitive.Timestamp{T: t.Unix(),...

你的代码在类型转换上是正确的,t.Unix()返回的确实是int64类型。但是,在给primitive.Timestamp赋值时需要注意其字段类型。根据 go.mongodb.org/mongo-driver/bson/primitive 包的文档,字段 T 应该是 uint32 类型而不是 int64 类型。

你可以通过将 t.Unix() 强制转换为 uint32 类型来修正这个问题,如下所示:

import (
	"time"
	"go.mongodb.org/mongo-driver/bson/primitive"
)

func ConvertToTimestamp(seconds int64) primitive.Timestamp {
	t := time.Unix(seconds, 0)
	return primitive.Timestamp{T: uint32(t.Unix()), I: 0}
}

现在,你的代码应该能够正确地将秒数转换为 primitive.Timestamp 类型了。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=14831

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?