Golang 时间和日期函数
优质
小牛编辑
147浏览
2023-12-01
获取当前时间
package main import ( "fmt" "time" ) func main() { var t time.Time = time.Now() // 2018-09-27 17:25:11.653198 +0800 CST m=+0.009759201 fmt.Println(t) }
获取年月日时分秒
package main import ( "fmt" "time" ) func main() { var t time.Time = time.Now() fmt.Println(t.Year()) fmt.Println(t.Month()) fmt.Println(t.Day()) fmt.Println(t.Hour()) fmt.Println(t.Minute()) fmt.Println(t.Second()) }
格式化时间
package main import ( "fmt" "time" ) func main() { var t time.Time = time.Now() fmt.Printf("当前的时间是: %d-%d-%d %d:%d:%d\n", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second()) var dateStr = fmt.Sprintf("%d-%d-%d %d:%d:%d", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second()) fmt.Println("当前的时间是:", dateStr) }
package main import ( "fmt" "time" ) func main() { var t time.Time = time.Now() // 2006/01/02 15:04:05这个字符串是Go语言规定的, 各个数字都是固定的 // 字符串中的各个数字可以只有组合, 这样就能按照需求返回格式化好的时间 str1 := t.Format("2006/01/02 15:04:05") fmt.Println(str1) str2 := t.Format("2006/01/02") fmt.Println(str2) str3 := t.Format("15:04:05") fmt.Println(str3) }
时间常量
- 一般用于指定时间单位,和休眠函数配合使用
- 例如:100毫秒,
100 *time.Millisecond
const ( Nanosecond Duration = 1 // 纳秒 Microsecond = 1000 * Nanosecond // 微秒 Millisecond = 1000 * Microsecond // 毫秒 Second = 1000 * Millisecond // 秒 Minute = 60 * Second // 分钟 Hour = 60 * Minute // 小时 )
package main import ( "fmt" "time" ) func main() { for{ // 1秒钟打印一次 time.Sleep(time.Second * 1) // 0.1秒打印一次 //time.Sleep(time.Second * 0.1) time.Sleep(time.Millisecond * 100) fmt.Println("Hello LNJ") } }
获取当前时间戳
- Unix 秒
- UnixNano 纳秒
- 一般用于配合随机函数使用,作为随机函数随机种子
package main import ( "fmt" "time" ) func main() { t := time.Now() // 获取1970年1月1日距离当前的时间(秒) fmt.Println(t.Unix()) // 获取1970年1月1日距离当前的时间(纳秒) fmt.Println(t.UnixNano()) }
package main import ( "fmt" "math/rand" "time" ) func main() { // 创建随机数种子 rand.Seed(time.Now().UnixNano()) // 生成一个随机数 fmt.Println(rand.Intn(10)) }