时间意外地将时间除以1'000'000

TN:

time.Duration用来将数据存储在一个结构中,如下所示:

type ApiAccessToken struct {
    ...
    ExpiredIn   *time.Duration `bson:"expired_in,omitempty" json:"expired_in,omitempty"`
    ...
}

我使用这样的常量进行设置:

...
const ApiAccessTokenDefaultExpiresIn = 7 * 24 * time.Hour
...
d := ApiAccessTokenDefaultExpiresIn
data := &ApiAccessToken{
    ...
    ExpiredIn: &d
    ...
}
...

然后我mgo将数据插入数据库。

在创建data实例之后并插入数据之前,我做了检查,值ExpiredIn是604'800'000'000'000,但是在MongoDB中,它变成了604'800'000(或NumberLong(604800000))。

知道为什么吗?谢谢!

TN:

当前解决方案: ExpiredIn 用MongoDB 返回的值乘以 time.Second 我得到Go味的纳秒 time.Duration

我最终使用的string表示形式,time.Duration因为它很简单。

我为我的ApiAccessToken结构创建了两个函数,它们可以完成数据的读写操作。

func (tok *ApiAccessToken) SetExpiredIn(t time.Duration) {
    s := t.String() // read the string
    tok.ExpiredIn = &s
}

func (tok *ApiAccessToken) GetExpiredIn() (r bool, t time.Duration) {
    if tok.ExpiredIn != nil {
        var err error
        t, err = time.ParseDuration(*tok.ExpiredIn) // parse the string
        r = (err == nil)                            // can we use this?
    }
    return
}

瞧,它有效!

串

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Tensorflow解码JPEG:预期的图像(JPEG,PNG或GIF),格式从'\ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 000 \ 00'开始的未知格式

Kotlin-我该如何以逗号分隔每三个数字1,000,000,000

为什么在C中将1,000,000,000写为1000 * 1000 * 1000?

保持1,000,000个Websocket开放时,将占用多少系统资源?

每微秒1,000,000,000次计算?

查找介于1到10,000,000之间的丑陋数字

在C语言中,如何使用scanf扫描1,000,000个而忽略逗号

格式化数字以使用逗号(1000000-> 1,000,000)

超时在数据库中插入1,000,000行(有时)

SQS可以为单个帐户扩展多达1,000,000个队列吗?

N = 1,000,000的myArray [N]返回错误,而myArray [1,000,000]不返回错误

如何从1,000,000行和20,000个特征中获取最近的邻居矩阵?

如果使用mask ='+ 1 000 000',则表格值不会以角度重置

如何在Java中计算带格式的字符串,例如“ 1,000,000 * 2”

“以1,000,000,007为模进行计算”是什么意思?

在Excel中将1M转换为1,000,000

在JavaScript中将1,000,000转换为1.0E6

在JavaScript中将1,000,000转换为1.0E6

NSNumberFormatter stringFromNumber返回1,000,000,000用于输入999999999

Excel为什么无法计算(-1)^ 10,000,000,000?

如何使用Javascript平均分割圆,使其正确缩放到1,000,000,000%?

假设我的数据库中有一个+1,000,000,000,000,000的条目

将umask设置为000危险

如何将 1000 000 显示为 1Million

c ++如何存储2 ^ 1 000 000大的变量和字符串?

Unix 时间在午夜被 10,000,000 秒整除的频率是多少?

将整数 1-max 映射到 1-1,000,000 的 100 个整数

将字段值从 1,000 转换为数字

在 int 打印出达到 1,000,000 后 Python 速度变慢