我们正在尝试将一个unix时间戳(可用作字符串)解析为时间对象,但是,以下内容不起作用:
package main
import (
"fmt"
"time"
)
func main() {
t, _ := time.Parse(time.UnixDate, "1393344464")
fmt.Printf("%v", t)
}
它一直返回0001-01-01 00:00:00 +0000 UTC。 Go Playground.
答案 0 :(得分:5)
前言 - 永远不要忽略error
(t, _ :=
),你会错过重要的错误信息并一直混淆。
关于您的问题 - 您需要使用time.Unix来实现您的目标。
package main
import (
"log"
"time"
)
func main() {
t, err := time.Parse(time.UnixDate, "1393344464")
if err != nil {
log.Println(err)
}
log.Printf("%v\n", t)
t = time.Unix(1393344464,0)
log.Printf("%v\n", t)
}
答案 1 :(得分:5)
首先,你有一个错误,你没有检查它:http://play.golang.org/p/7ruFfv5QHT这是不好的做法(这些错误有助于调试!:)使用它们!)
UnixDate用于日期的unix字符串表示;不是时间戳。来自:UnixDate = "Mon Jan _2 15:04:05 MST 2006"
。
使用time.Unix
:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Unix(1393324260, 0)
fmt.Printf("%v", t)
}