1、基础语法
1、日期与时间处理
//格式化为 年月日
today := time.Now().Format("2006-01-02")
fmt.Println(today) //2019-04-25
//格式化为 年月日时分秒
datetime := time.Now().Format("2006-01-02 15:04:05")//后面的参数是固定的 否则将无法正常输出
fmt.Println(datetime) //2019-04-25 14:46:09
//分别获取 年、月、日
day:=time.Now().Day()
month:=time.Now().Format("01")
year:=time.Now().Year()
fmt.Println(year,month,day) //2019 04 25
//字符串转日期
format:= "2006-01-02 15:04:05"
// 日期字符串
str := "2017-09-13 21:57:01"
loc, _ := time.LoadLocation("Local")
timeval, _ := time.ParseInLocation(format, str, loc)
fmt.Println(timeval) //2017-09-13 21:57:01 +0800 CST
//获取时间毫秒数
fmt.Println(time.Now().UnixNano() / 1e6) //1556177344776
2、Json处理
type BasicInfo struct {
Name string `json:"name"`
Age int `json:"age"`
}
type JobInfo struct {
Skills []string `json:"skills"`
}
type Employee struct {
BasicInfo BasicInfo `json:"basic_info"`
JobInfo JobInfo `json:"job_info"`
}
var jsonStr = `{
"basic_info":{
"name":"Mike",
"age":30
},
"job_info":{
"skills":["Java","Go","C"]
}
} `
func TestEmbeddedJson() {
e := new(Employee)
//将json字符串转结构体
err := json.Unmarshal([]byte(jsonStr), e)
if err != nil {
panic(err)
}
fmt.Println(*e)
//将结构体转json字符串
if v, err := json.Marshal(e); err == nil {
fmt.Println(string(v))
} else {
panic(err)
}
}