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 }