go:處理時間
- 2019 年 11 月 22 日
- 筆記
go中處理時間坑也挺多滴 時間轉字元串
func TimeToStrLong(t time.Time) string { return t.Format("2006-01-02 15:04:05") } func TimeToStrShort(t time.Time) string { return t.Format("2006-01-02") }
字元串轉時間(注意時區)
// 謹慎使用time.Parse,它會直接轉成utc時間 // ParseTime 字元串轉時間, zone 為時區 東8=8;西5=-5 func ParseTime(strTime string, zone int) time.Time { var tzone = time.FixedZone("zone", zone*3600) t, _ := time.ParseInLocation("2006-01-02 15:04:05", strTime, tzone) return t }
當前本地時間
// 這裡返回的是本地時間 tstr := time.Now().Format("2006-01-02 15:04:05") fmt.Println(tstr)
當前時間(帶時區)
// 當前求美國東部時間(不考慮夏令時) var estZone = time.FixedZone("EST", -5*3600) tstr = time.Now().In(estZone).Format("2006-01-02 15:04:05") fmt.Println(tstr)
時間戳
// TimeToTimestamp time 轉為 10位timestamp func TimeToTimestamp(t time.Time) int64 { ret := t.UnixNano() / 1000000000 return ret } // TimestampToTime 十位 timestamp 轉換為time func TimestampToTime(timestamp int64) time.Time { tm := time.Unix(timestamp, 0) return tm }
時間轉日期(消去時分秒)
func TimeToDate(t time.Time) time.Time { loc, _ := time.LoadLocation("Asia/Chongqing") return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, loc) }

