go 的时间与时间戳计算

unix时间戳

unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。

go计算unix 时间戳

timestamp := time.Now().Unix()
fmt.Println(timestamp)

时间戳计算时间

time.Unix(timestamp, 0)

计算时间差

用到parse函数和sub函数

f1, err := time.Parse("2006-01-02 15:04:05", t1)
f2, err := time.Parse("2006-01-02 15:04:05", t2)
然后使用sub函数
d := (int)(f2.Sub(f1).Seconds())

code

以下代码可复制直接执行

package main

import (
	"fmt"
	"time"
)

func calc_seconds(t1 string, t2 string) int {

	f1, err := time.Parse("2006-01-02 15:04:05", t1)
	if err != nil {
		return -1
	}

	f2, err2 := time.Parse("2006-01-02 15:04:05", t2)
	if err2 != nil {
		return -1
	}
	d := (int)(f2.Sub(f1).Seconds())
	if d < 0 {
		x := 0 - d
		return x
	}
	return d
}
func calc_timenow() string {

	timeStr := time.Now().Format("2006-01-02 15:04:05")
	//fmt.Println(timeStr)
	return timeStr
}
func main() {
	timestamp := time.Now().Unix()
	fmt.Println(timestamp)
	time.Unix(timestamp, 0)
	//获取时间戳
	fmt.Println(calc_timenow())
	f1 := "2021-04-11 13:34:37"
	f2 := "2021-04-11 13:34:30"
	fmt.Println(calc_seconds(f1, f2))

}

你可能感兴趣的:(go,golang,开发语言,后端)