本文摘自网络,作者,侵删。

golang 各种类型相互转换

时间格式化

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


// TPFunDateTimeStringFormat 时间格式化    时间格式化字符串
func TPFunDateTimeTimeFormat(timeValue time.Time, fmt string) string {

  if !timeValue.IsZero() {
      chinaLocal, _ := time.LoadLocation("Local")
      return timeValue.In(chinaLocal).Format(fmt) //使用模板格式化为日期字符串
  } else {
      return ""
  }

}
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 等其他类型转换

  //定义一个interface类型的变量
  var inter interface{}
  //赋值
  inter=1
  //定义一个int64的变量 
  var i int64
  //将interface类型的inter转为int64
  i= inter.(int64)
  //打印
  fmt.Println(i)
  //定义一个interface类型的变量
  var inter interface{}
  //赋值
  inter="1"
  //定义一个string的变量
  var str string
  //将interface类型的inter转为string
  str= inter.(string)
  //打印
  fmt.Println(str)
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)
    }
//定义一个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)

本文来自:简书

查看原文:Go 时间格式化 字符串格式化为时间格式

相关阅读 >>

更多相关阅读请进入《Go》频道 >>


Go语言101

老貘

一个与时俱进的Go编程知识库。