美文网首页golangGolang 入门资料+笔记
Go 时间格式化 字符串格式化为时间格式

Go 时间格式化 字符串格式化为时间格式

作者: 五岁小孩 | 来源:发表于2021-03-23 08:14 被阅读0次

    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)
    

    相关文章

      网友评论

        本文标题:Go 时间格式化 字符串格式化为时间格式

        本文链接:https://www.haomeiwen.com/subject/avygxltx.html