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

golang 各种类型相互转换

时间格式化

  • 时间格式化 字符串"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 条评论

留下一个回复