时间获取
package main import ( "fmt" "time" ) func main() { timeObj :=time.Now() //返回的是个对象 fmt.Println(timeObj) //2021-03-25 22:14:57.3459874 +0800 CST m=+0.003004101 // 过去年-月-日 时-分-秒的格式 year := timeObj.Year() fmt.Println(year) //2021 month := timeObj.Month() fmt.Println(month) // March day := timeObj.Day() fmt.Println(day) //25 hour := timeObj.Hour() fmt.Println(hour) //22 minute := timeObj.Minute() fmt.Println(minute) //18 second := timeObj.Second() fmt.Println(second) //4 fmt.Printf("%d-%d-%d %d:%d:%d ", year, month, day, hour, minute, second) //2021-3-25 22:21:37 fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second) //2021-03-25 22:21:37 //注意:%02d 中的 2 表示宽度,如果整数不够 2 列就补上 0 }
自定义格式
go中没有像PHP "Y-m-d"这样格式全部使用数字代表
package main import ( "fmt" "time" ) /* 时间类型有一个自带的方法Format进行格式化, 需要注意的是Go语言中格式化时间模板不是常见的Y-m-d H:M:S 而是使用Go的诞生时间2006年1月2号15点04分(记忆口诀为2006 1 2 3 4) 2006 年 01 月 02 日 03 时 12小时制 写成:15 表示 24小时制 04 分 05 秒 */ func main() { // timeObj := time.Now() // var str = timeObj.Format("2006-01-02 03:04:05") // fmt.Println(str) //2020-04-26 05:44:24 //12小时制 // timeObj := time.Now() // var str = timeObj.Format("2006/01/02 03:04:05") // fmt.Println(str) //2020/04/26 05:44:47 // 24小时制 timeObj := time.Now() var str = timeObj.Format("2006/01/02 15:04:05") fmt.Println(str) // 2020/04/26 17:48:53 }
时间戳&日期格式转换
package main import ( "fmt" "time" ) func main() { // 1.获取当前时间戳 (毫秒) timeObj := time.Now() sjc := timeObj.Unix() fmt.Println(sjc) // 1616759478 //2.时间戳转换为日期格式 注意int64转换 timeObj2 := time.Unix(int64(sjc), 0) dateStr := timeObj2.Format("2006-01-02 15:04:05") fmt.Println(dateStr) // 2021-03-26 19:51:18 //3.日期格式转为时间戳 str := "2021-03-26 19:51:18" tmp := "2006-01-02 15:04:05" // 需要和被转换的日期字符串格式一致 timeObj3, _ := time.ParseInLocation(tmp, str, time.Local) fmt.Println(timeObj3.Unix()) // 1616759478 }