How to extract unix timestamp and get date

huangapple go评论143阅读模式
英文:

How to extract unix timestamp and get date

问题

我有一个整数

x := 1468540800

我想从这个Unix时间戳中提取日期,在Golang中。我尝试过time.ParseDuration,但看起来这不是从中提取日期的正确方法。转换应该像这样进行:http://www.unixtimestamp.com/index.php
我打算转换成ISO 8601格式。我想要一个像2016-09-14这样的字符串。

英文:

I have an integer

x := 1468540800

I want to fetch the date out of this unix timestamp in Golang. I have tried time.ParseDuration but looks like that's not the correct way to extract date out of this. Converstion should happen like this http://www.unixtimestamp.com/index.php
I intend to convert into in ISO 8601 format may be. I want string like 2016-09-14.

答案1

得分: 5

你可以使用t := time.Unix(int64(x), 0),将位置设置为本地时间。
或者使用t := time.Unix(int64(x), 0).UTC(),将位置设置为UTC。

你可以使用t.Format("2006-01-02")进行格式化,
代码(在The Go Playground上尝试):

package main

import (
	"fmt"
	"time"
)

func main() {
	x := 1468540800
	t := time.Unix(int64(x), 0).UTC() // UTC返回具有位置设置为UTC的t。
	fmt.Println(t.Format("2006-01-02"))
}

输出:

2016-07-15
英文:

You may use t := time.Unix(int64(x), 0) with location set to local time.
Or use t := time.Unix(int64(x), 0).UTC() with the location set to UTC.

You may use t.Format("2006-01-02") to format,
Code (try on The Go Playground):

package main

import (
	"fmt"
	"time"
)

func main() {
	x := 1468540800
	t := time.Unix(int64(x), 0).UTC() //UTC returns t with the location set to UTC.
	fmt.Println(t.Format("2006-01-02"))
}

output:

2016-07-15

答案2

得分: 2

使用time.Unix函数,将纳秒设置为0。

t := time.Unix(int64(x), 0)

Playground: https://play.golang.org/p/PpOv8Xm-CS.

英文:

Use time.Unix with nanoseconds set to 0.

t := time.Unix(int64(x), 0)

Playground: https://play.golang.org/p/PpOv8Xm-CS.

答案3

得分: 1

你可以使用strconv.ParseInt()函数将字符串解析为int64类型,然后与time.Unix()函数结合使用。

myTime, err := strconv.ParseInt(x, 10, 64)
if err != nil {
    panic(err)
}
newTime := time.Unix(myTime, 0)

这段代码将字符串x解析为int64类型的myTime变量,然后使用time.Unix()函数将myTime转换为时间类型的newTime变量。

英文:

You can use strconv.ParseInt() for parsing to int64 in combination with time.Unix.

myTime,errOr := strconv.ParseInt(x, 10, 64)
    if errOr != nil {
        panic(errOr)
    }
    newTime := time.Unix(myTime, 0)

答案4

得分: -4

$timestamp=1468540800;
echo gmdate("Y-m-d", $timestamp);

英文:
$timestamp=1468540800;
echo gmdate("Y-m-d", $timestamp);

huangapple
  • 本文由 发表于 2016年9月14日 22:07:51
  • 转载请务必保留本文链接:https://go.coder-hub.com/39492556.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定