380 Star 2.5K Fork 620

GVPJohn / gf

 / 详情

13位时间戳如何转日期,可以提供个方法吗

已完成
创建于  
2020-01-22 16:16

gtime.NewFromTimeStamp()
只能转10位。

希望提供13位时间戳转换方法。谢谢!

评论 (7)

tianxia007 创建了任务

13位/1000 进行使用,以自己处理

tianxia007 任务状态待办的 修改为已完成

@tianxia007 gtime.NewFromTimeStamp支持到纳秒的时间戳,可以看看方法注释,示例:

package main

import (
	"fmt"
	"github.com/gogf/gf/os/gtime"
)

func main() {
	ns := gtime.TimestampNano()
	t := gtime.NewFromTimeStamp(ns)
	fmt.Println(ns)
	fmt.Println(t.String())
}
John 添加了
 
question
标签

@John
http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp
这个接口取到的时间戳没法转出日期格式
1579695307998
您可以试下

@tianxia007 可以啊:

package main

import (
	"fmt"
	"github.com/gogf/gf/os/gtime"
)

func main() {
	t := gtime.NewFromTimeStamp(1579695307998)
	fmt.Println(t.String())
}

输出结果:

2020-01-22 20:15:07

@John 大佬有空试下这个例子,为什么返回的13位的时间戳,用int64装换不到对象里,是0.也不报错。

package main

import (
	 
	"fmt"
	"github.com/gogf/gf/encoding/gjson"
	"github.com/gogf/gf/net/ghttp"
	 
	"github.com/golang/glog"
	"time"
)
func main() {
	content := ghttp.GetContent("http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp")
	taobaoTime := new(TaobaoTime)
	err := gjson.DecodeTo(content, &taobaoTime)
	if err != nil {
		glog.Error(err)
	}
	timestamptemp := (taobaoTime.Data.T)
	glog.Info(timestamptemp)
	re := gtime.NewFromTimeStamp(timestamptemp).String()
	glog.Info(re)
}
type TimeStamp struct {
	T int64 `json:t`//用string就可以正常解析
}
type TaobaoTime struct {
	Api  string    `json:api`
	V    string    `json:v`
	ret  string    `json:ret`
	Data TimeStamp `json:data`
}

@tianxia007 gjson.DecodeTo方法其实用的是标准库的json.Unmarshal方法,功能比较有限,你可以参考以下代码,不过你可能得更新到最新的master分支:

package main

import (
	"github.com/gogf/gf/net/ghttp"
	"github.com/gogf/gf/os/glog"
	"github.com/gogf/gf/util/gconv"
)

type TimeStamp struct {
	T int64 `json:t` //用string就可以正常解析
}
type TaobaoTime struct {
	Api  string        `json:api`
	V    string        `json:v`
	Ret  []interface{} `json:ret`
	Data TimeStamp     `json:data`
}

func main() {
	content := ghttp.GetContent("http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp")
	taobaoTime := new(TaobaoTime)
	if err := gconv.Struct(content, taobaoTime); err != nil {
		panic(err)
	}
	glog.Info(taobaoTime.Data.T)
}

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
112612 dwxdfhx 1578918070 1309327 johng 1705475649
Go
1
https://gitee.com/johng/gf.git
git@gitee.com:johng/gf.git
johng
gf
gf

搜索帮助

344bd9b3 5694891 D2dac590 5694891