前要:好記性不如爛筆頭
目標一:時間戳轉(zhuǎn)時間格式
過程:時間戳=>Time, Time=>需要的時間格式
// TimestampToTime 時間戳到時間
// timestamp int64:轉(zhuǎn)換的時間戳
// layout string 需要轉(zhuǎn)換的時間格式
func TimestampToTime(timestamp int64,layout string) string {
return time.Unix(timestamp, 0).Format(layout)
}
使用:
timestamp := time.Now().Unix()
fmt.Println(TimestampToTime(timestamp,"2006-01-02 15:04:05 PM"))
目標二:時間格式到時間戳的轉(zhuǎn)換
過程:需要的時間格式=>Time,Time=>時間戳
// TimeToTimestamp 時間字符串到時間戳寸士,你需要知道你的時間字符串格式
// layout 解析的時間格式檐什,
// timestr 轉(zhuǎn)換的時間
func TimeToTimestamp(layout,timestr string) (int64, error) {
loc, err := time.LoadLocation("Local")
if err != nil {
return -1, err
}
times, err := time.ParseInLocation(layout, timestr, loc)
if err != nil {
return -1, err
}
trantimestamp := times.Unix()
return trantimestamp, nil
}
使用:
trantimestamp, err := TimeToTimestamp("2006-01-02 15:04:05 PM","2017-09-07 09:49:54 AM")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("trantimestamp:",trantimestamp)
目標三:判斷一個時間點是否在一個時間點之后
過程:這個對于時間戳而言非常簡單,但是對于其他的需要轉(zhuǎn)換到time即可對比
stringToTime, _ := time.Parse("2006-01-02 15:04:05", "2017-12-12 12:00:00")
beforeOrAfter := stringToTime.After(time.Now())
if beforeOrAfter == true {
fmt.Println("2017-12-12 12:00:00在tNow之后!")
} else {
fmt.Println("2017-12-12 12:00:00在tNow之前!")
}
// AfterTime 判斷一個時間在現(xiàn)在之前還是之后
// layout 解析的時間格式弱卡,
// judeTime 需要判斷的時間
// bool =true 在當前時候之后乃正,false在當前時間之前
func AfterTime(layout, judeTime string) (bool, error) {
stringToTime, err := time.Parse(layout, judeTime)
if err != nil {
return false, err
}
beforeOrAfter := stringToTime.After(time.Now())
if beforeOrAfter == true {
return true, nil
} else {
return false, nil
}
}
目標四:判斷一個時間相比另外一個時間點過去了多久
過程:這個是用Time的方式來對比
beginTime :=time.Now()
time.Sleep(time.Second*1)
durtime:= time.Since(beginTime)
fmt.Println("離現(xiàn)在過去了:",durtime)