本文摘自网络,作者,侵删。
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编程知识库。