天天看點

go 常用類型轉換

1.string int轉換

string轉成int:
int, err := strconv.Atoi(string)
string轉成int64:
int64, err := strconv.ParseInt(string, 10, 64)
int轉成string:
string := strconv.Itoa(int)
int64轉成string:
string := strconv.FormatInt(int64,10)
           

2.golang 幾種字元串的拼接方式

address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr)

 _ = fmt.Sprintf("%s,%s", hello, world)


 _ = strings.Join([]string{hello, world}, ",")


 var buffer bytes.Buffer
    buffer.WriteString(hello)
    buffer.WriteString(",")
    buffer.WriteString(world)
    _ = buffer.String()
           

3.時間處理

3.1比較
nowAddTime.After(now) 
nowAddTime.Before(now)
3.2 加減
nowAddTime := now.Add(timeDur)
//時間相減,時間差(時間段)
diff := nowAddTime.Sub(now)
3.3格式化


//時間轉換的模闆,golang裡面隻能是 "2006-01-02 15:04:05" (go的誕生時間)
timeTemplate1 := "2006-01-02 15:04:05" //正常類型
timeTemplate2 := "2006/01/02 15:04:05" //其他類型
timeTemplate3 := "2006-01-02"          //其他類型
timeTemplate4 := "15:04:05"            //其他類型

⚠️format時間格式的時候 2006-01-02 15:04:05 = yyyy-mm-dd hh:MM:ss這樣的格式


// ======= 将時間戳格式化為日期字元串 =======
//輸出:2019-01-08 13:50:30
time.Unix(t, 0).Format(timeTemplate1) //t 時間戳


3.4 字元串 時間戳 轉換


//擷取時間戳
timestamp := time.Now().Unix()


//格式化為字元串
tm := time.Unix(timestamp, 0)
fmt.Println(tm.Format("2006-01-02 03:04:05"))
//輸出:2021-02-02 13:50:30


//從字元串轉為時間戳,
//01/02/2006格式,02/08/2015是要轉換的時間字元串
tm2, _ := time.Parse("01/02/2006", "02/08/2015")
fmt.Println(tm2.Unix())

3.5 判斷時間是否存在
.IsZero() //存在 true  否則 false
           
go