Golang笔记

Golang 字符串毫秒转时间格式

Golang 字符串毫秒转时间格式

package main

import (
	"fmt"
	"strconv"
	"time"
)

func main() {
	fmt.Println(msToTime("1489582166978"))
}

func msToTime(ms string) (time.Time, error) {
	msInt, err := strconv.ParseInt(ms, 10, 64)
	if err != nil {
		return time.Time{}, err
	}

	tm := time.Unix(0, msInt*int64(time.Millisecond))

	fmt.Println(tm.Format("2006-02-01 15:04:05.000"))

	return tm, nil
}

输出:

2017-15-03 20:49:26.978
2017-03-15 20:49:26.978 +0800 CST <nil>

另外一种(秒):

package main

import (
	"fmt"
	"strconv"
	"time"
)

func main() {
	i, err := strconv.ParseInt("1489582166", 10, 64)
	if err != nil {
		panic(err)
	}
	tm := time.Unix(i, 0)
	fmt.Println(tm)
	fmt.Println(tm.Format("2006-02-01 15:04:05"))
}

// 2017-03-15 20:49:26 +0800 CST
// 2017-15-03 20:49:26
  • 10位数的时间戳是以 秒 为单位
  • 13位数的时间戳是以 毫秒 为单位
  • 19位数的时间戳是以 纳秒 为单位

    fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix())
    fmt.Printf("时间戳(纳秒):%v;\n",time.Now().UnixNano())
    fmt.Printf("时间戳(毫秒):%v;\n",time.Now().UnixNano() / 1e6)
    fmt.Printf("时间戳(纳秒转换为秒):%v;\n",time.Now().UnixNano() / 1e9)
    
本文网址: https://golangnote.com/topic/156.html (转载注明出处)
关于GolangNote:记录在工作中使用golang 遇到、面临的相关问题及解决方法。如果你在这里获得一些知识或信息,解决你的编程问题,请考虑捐赠给不幸的人或者你喜欢的慈善机构,除捐赠外,种植树木、志愿服务或减少排碳的行为也很有益处。如果你有任何问题可以在下面 留言
Be the first to comment!
Captcha image
Relative Articles