Golang中time.Now()返回2009年是怎么回事?

Golang中time.Now()返回2009年是怎么回事? 我得到

2009-11-10 23:00:00 +0000 UTC m=+0.000000001

使用这段代码。

package main

import (
	"fmt"
	"time"
)

func main() {
	fmt.Println(time.Now())
}

如何获取正确的时间?Fiddle

2 回复

在Go Playground上运行该代码,结果时间总是接近那个值。这是沙盒环境的设置方式,目的是使结果具有可复现性。

如果你在本地运行代码,应该会得到正确的日期和时间。

更多关于Golang中time.Now()返回2009年是怎么回事?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这是Go语言的一个已知特性。time.Now()在Go Playground中总是返回固定时间2009-11-10 23:00:00 UTC,这是为了确保代码示例在不同时间运行时都能得到确定性的输出结果。

在实际的Go程序中(非Playground环境),time.Now()会返回当前的正确时间。如果你想在本地测试,可以:

package main

import (
    "fmt"
    "time"
)

func main() {
    // 在本地运行会得到当前时间
    fmt.Println("当前时间:", time.Now())
    
    // 格式化输出
    fmt.Println("格式化时间:", time.Now().Format("2006-01-02 15:04:05"))
    
    // 获取时间戳
    fmt.Println("Unix时间戳:", time.Now().Unix())
}

在本地编译运行这个程序,你会看到当前的正确时间。Go Playground的环境是沙盒化的,所以返回固定时间以确保示例代码的可重现性。

回到顶部