Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 在Go中生成随机时间戳_Random_Go_Time - Fatal编程技术网

Random 在Go中生成随机时间戳

Random 在Go中生成随机时间戳,random,go,time,Random,Go,Time,我想在过去的相对3年内生成一个随机时间戳,并用以下格式打印出来:%d/%b/%Y:%H:%M:%S%z 以下是我现在拥有的: package main import ( "strconv" "time" "math/rand" "fmt" ) func randomTimestamp() time.Time { randomTime := rand.Int63n(time.Now().Unix() - 94608000) + 94608000

我想在过去的相对3年内生成一个随机时间戳,并用以下格式打印出来:
%d/%b/%Y:%H:%M:%S%z

以下是我现在拥有的:

package main

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

func randomTimestamp() time.Time {
    randomTime := rand.Int63n(time.Now().Unix() - 94608000) + 94608000

    randomNow, err := time.Parse("10/Oct/2000:13:55:36 -0700", strconv.FormatInt(randomTime, 10))
    if err != nil {
        panic(err)
    }

    return randomNow
}

func main() {
    fmt.Println(randomTimestamp().String())
}

这总是抛出:
panic:parsing time“…”:月超出范围。如何为给定范围生成随机时间戳,然后使用标准库将其转换为所需的字符串格式?

不要使用time.Parse。您有一个Unix时间,而不是时间字符串。请改用
Unix()
方法。您还可以选择一个最小时间值,例如1/1/1900,并使用
add
方法在时间上添加秒的随机持续时间,并传递使用Ticks()方法创建的
Duration

这里有一个去操场的链接。请记住,围棋场不支持实际的随机性

package main

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

func randomTimestamp() time.Time {
    randomTime := rand.Int63n(time.Now().Unix() - 94608000) + 94608000

    randomNow := time.Unix(randomTime, 0)

    return randomNow
}

func main() {
    fmt.Println(randomTimestamp().String())
}