首页 > golang > golang各种类型相互转换
2021
01-17

golang各种类型相互转换

时间格式化

格林威治时间转国内时间格式(带时差转换) TZ

package main

import (
   "fmt"
   "time"
)

func main() {
   // "2019-01-05T11:21:03Z"  转 "2019-01-05 19:21:03"

   duestr := "2019-01-05T11:21:03Z"
   duetime, _ := time.Parse("2006-01-02T15:04:05Z", duestr)
   fmt.Println(time.Unix(duetime.Unix(), 0).Format("2006-01-02 15:04:05"))
}

时间格式化 字符串"2019-04-07 15:15:05" 转字符串 2019-04-07T15:15:05+0800

package main

import (
   "encoding/json"
   "fmt"
   "time"
)

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+0800 UTC

package main

import (
   "fmt"
   "time"
)

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

2.时间格式化 字符串格式化----结果字符串

package main

import "time"

// 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/时间格式化为字符串

package main

import "time"

// 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类型转字符串

package main

import "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

package main

import (
   "fmt"
)

func main() {
   //定义一个interface类型的变量
   var inter interface{} //赋值
   inter = 1
   //定义一个int64的变量
   var i int64
   //将interface类型的inter转为int64
   i = inter.(int64) //打印
   fmt.Println(i)
}

2.interface 转 string

package main

import (
   "fmt"
)

func main() {
   //定义一个interface类型的变量
   var inter interface{} //赋值
   inter = "1"
   //定义一个string的变量
   var str string
   //将interface类型的inter转为string
   str = inter.(string) //打印
   fmt.Println(str)
}

3.interface 转 结构体

package main

import "fmt"

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 互转

package main

import (
   "fmt"
   "strconv"
)

func main() { //定义一个interface类型的变量
   //定义一个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转字符串

package main

import "fmt"

//float转字符串
func TPFunctionFloat64Format(a float64, fmtStr string) string {
   return fmt.Sprintf(fmtStr, a)
}


float保留小数

package main

import (
   "fmt"
   "strconv"
)

//float转字符串
func main() {
   var f float64
   var nf, error = strconv.ParseFloat(fmt.Sprintf("%.6f", f), 64)
   fmt.Println(nf, error)
}


本文》有 0 条评论

留下一个回复