个人封装的几个常用时间转换
package helpers
import (
"time"
)
type Time struct{}
func NewTime() *Time {
return &Time{}
}
// 时间戳转字符串
func (s *Time) TimeToString(t time.Time) string {
if t.IsZero() {
return ""
}
return t.Format("2006-01-02 15:04:05")
}
// 字符串转时间戳
func (s *Time) StringToTime(t string) time.Time {
nilTime := time.Time{}
if len(t) < 1 {
return nilTime
}
loc, _ := time.LoadLocation("Local")
location, err := time.ParseInLocation("2006-01-02 15:04:05", t, loc)
if err != nil {
return nilTime
}
return location
}
// 时间戳转整形
func (s *Time) TimeToInt64(t time.Time) int64 {
if t.IsZero() {
return 0
}
return t.Unix()
}
// 整形转时间戳
func (s *Time) Int64ToTime(t int64) time.Time {
if t < 1 {
return time.Time{}
}
return time.Unix(t, 0)
}
// 时间字符串转整形
func (s *Time) StringToInt64Time(t string) int64 {
if len(t) < 1 {
return 0
}
loc, _ := time.LoadLocation("Local")
location, err := time.ParseInLocation("2006-01-02 15:04:05", t, loc)
if err != nil {
return 0
}
return location.Unix()
}
// 字符串转时间戳
func (s *Time) StringZtToTime(t string) time.Time {
nilTime := time.Time{}
if len(t) < 1 {
return nilTime
}
loc, _ := time.LoadLocation("Local")
location, err := time.ParseInLocation("2006-01-02T15:04:05Z", t, loc)
if err != nil {
return nilTime
}
return location
}
// 整形转时间字符串
func (s *Time) Int64ToStringTime(t int64) string {
if t < 1 {
return ""
}
return time.Unix(t, 0).Format("2006-01-02 15:04:05")
}