golang 各种类型相互转换
时间格式化
-
时间格式化 字符串"2019-04-07 15:15:05"----结果 字符串 2019-04-07T15:15:05+0800
func main(){ timeStr := "2019-04-07 15:15:05" fmt.Println("初始:", timeStr) t, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local) //方法一 tBytes, _ := json.Marshal(t) fmt.Println("方法一:", string(tBytes)) //方法二 tStr := t.Format("2006-01-02T15:04:05.999999999-0700") fmt.Println("方法二:", tStr) }
初始: 2019-04-07 15:15:05 方法一: "2019-04-07T15:15:05+08:00" 方法二: 2019-04-07T15:15:05+0800
-
时间格式化 字符串"2019-04-07 15:15:05"----结果 字符串 2019-04-07T15:15:05+0800 UTC
func main(){ timeStr := "2019-04-07 15:15:05" fmt.Println("初始:", timeStr) t, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local) tStr := t.Format("2006-01-02T15:04:05.999999999-0700 UTC") fmt.Println("结果:", tStr) }
初始: 2019-04-07 15:15:05 结果: 2019-04-07T15:15:05+0800 UTC
-
2.时间格式化 字符串格式化----结果字符串
// TPFunDateTimeStringFormat 时间格式化 字符串格式化----结果字符串 func TPFunDateTimeStringFormat(timeValue string, fmt string) string { //timeValue := "2018-11-10T23:38:22.771406875+08:00" //时间字符串 timeLayout := "2006-01-02T15:04:05.999999999Z07:00" //所需模板 loc, _ := time.LoadLocation("Local") //***获取时区*** theTime, _ := time.ParseInLocation(timeLayout, timeValue, loc) //使用模板在对应时区转化为time.time类型 // 0001-01-01T00:00:00Z这里也表示时间为null if theTime.IsZero() { return "" } else { //时间戳转日期 //dataTimeStr := theTime.Format("2006-01-02 15:04:05") //使用模板格式化为日期字符串 dataTimeStr := theTime.Format(fmt) //使用模板格式化为日期字符串 return dataTimeStr } }
-
3.golang 时间time 格式化为字符串string/时间格式化为字符串
// TPFunDateTimeStringFormat 时间格式化 时间格式化字符串 func TPFunDateTimeTimeFormat(timeValue time.Time, fmt string) string { if !timeValue.IsZero() { chinaLocal, _ := time.LoadLocation("Local") return timeValue.In(chinaLocal).Format(fmt) //使用模板格式化为日期字符串 } else { return "" } }
-
4.golang 时间字符串转time时间格式 /time类型转字符串
func TimeStr2Time(timeStr string) time.Time { var layout = "2006-01-02 15:04" //转换的时间字符串带秒则 为 2006-01-02 15:04:05 timeVal, errByTimeConver := time.ParseInLocation(layout, timeStr, time.Local) if errByTimeConver != nil { log.Error("TimeStr To Time Error.....", errByTimeConver) } return timeVal }
golang interface 转string、int 等其他类型转换
-
1.interface 转 int
//定义一个interface类型的变量 var inter interface{} //赋值 inter=1 //定义一个int64的变量 var i int64 //将interface类型的inter转为int64 i= inter.(int64) //打印 fmt.Println(i)
-
2.interface 转 string
//定义一个interface类型的变量 var inter interface{} //赋值 inter="1" //定义一个string的变量 var str string //将interface类型的inter转为string str= inter.(string) //打印 fmt.Println(str)
-
3.interface 转 结构体
type Person struct { Name string Age string } func main(){ //定义一个interface类型的变量 var inter interface{} //赋值 inter=Person{"student","18"} //定义一个person类型的p var p Person //将类型为interface的inter转为person类型 p= inter.(Person) //打印 fmt.Println(p) }
-
4.string int 互转
//定义一个interface类型的变量 var str string //赋值 str="1" //定义一个int类型 var i int //使用 数据转换包strconv //string 转 int i, _= strconv.Atoi(str) fmt.Printf("i=%d\n",i) //int 转 字符串 str02 := strconv.Itoa(i) fmt.Printf("str02=%s",str02)
float转字符串
//float转字符串
func TPFunctionFloat64Format(a float64, fmtStr string) string {
return fmt.Sprintf(fmtStr, a)
}
float保留小数
var nf, error = strconv.ParseFloat(fmt.Sprintf("%.6f", f), 64)