Go Lang日期时间与unix时间戳互转
1.Go lang中日期时间转unix时间戳,10位unix时间戳转日期时间格式
/*
* DES:日期时间格式转unix时间戳 和 unix时间戳转日期时间格式
*/
package main
import (
"fmt"
"time"
)
func main() {
// 1.获取当前日期时间
date_now := GetDateNow()
fmt.Println("当前日期时间:", date_now)
// 2.当前日期时间转换为10位时间戳
unix_date := DateAndUnix(date_now)
fmt.Println("日期时间格式", date_now, "转为unix时间戳是:", unix_date)
// 3.当前日期时间的10位unix时间戳转日期时间格式
unix_time := time.Now().Unix() // 取当前日期时间戳
logindate := UnixAndDate(unix_time) // 当前日期unix时间戳转日期时间格式
fmt.Println("unix时间戳:", unix_time, "转换为日期格式是:", logindate)
}
/*
* 获取系统当前日期时间
* 返回东八区日期时间格式 : 2021-05-26 14:51:07
*/
func GetDateNow() string {
/*
go语言并没有全局设置时区这么一个东西,每次输出时间都需要调用一个In()函数改变时区:
var location, _ = time.LoadLocation("Asia/Shanghai") //上海
DateNow := time.Now().In(location).Format("2006-01-02 15:04:05")
在windows系统上,没有安装go语言环境的情况下,time.LoadLocation会加载失败。最好的办法是用time.FixedZone
*/
var location = time.FixedZone("CST", 8*3600) // 设置时区为东八区
timeLayout := "2006-01-02 15:04:05" // go语言固定日期模版
DateNow := time.Now().In(location).Format(timeLayout)
return string(DateNow)
}
/*
* Unix时间戳转为日期时间
* prarms: 传入10位数的unix_time时间戳
* 返回东八区日期时间格式: 2021-05-26 14:51:07
*/
func UnixAndDate(unix_date int64) string {
var location = time.FixedZone("CST", 8*3600) // 设置时区为东八区
timeLayout := "2006-01-02 15:04:05" // go语言固定日期模版
tm := time.Unix(unix_date, 0).In(location).Format(timeLayout)
return string(tm)
}
/*
* 日期时间转换为时间戳
* date: 传入日期时间格式的数据
* 返回10位数的unix时间戳: 1622012890
*/
func DateAndUnix(date string) int64 {
timeLayout := "2006-01-02 15:04:05" // go语言固定日期模版
times, _ := time.Parse(timeLayout, date)
timeUnix := times.Unix()
return timeUnix
}

浙公网安备 33010602011771号