你的代码在类型转换上是正确的,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助手提供,问题来源于学员提问




