如何在Go lang中生成随机日期?

时间:2017-04-19 12:26:43

标签: date go time

time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)

上面的代码为我们提供了一个时间戳,但是,如果我只想分别获取日期部分和时间部分,该怎么办?是否可以使用split()?

1 个答案:

答案 0 :(得分:7)

您可以使用math/rand生成如下随机日期:

import (
    "fmt"
    "math/rand"
    "time"
)

func randate() time.Time {
    min := time.Date(1970, 1, 0, 0, 0, 0, 0, time.UTC).Unix()
    max := time.Date(2070, 1, 0, 0, 0, 0, 0, time.UTC).Unix()
    delta := max - min

    sec := rand.Int63n(delta) + min
    return time.Unix(sec, 0)
}

https://play.golang.org/p/x1CK6nIO-v