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)  }