time
Time
获取时间
- 使用用 time.Now()获取当前时间
- 使用用 time.Now().Unix()获取当前时间戳(1970.1.1.00000 到现在的秒数)
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
fmt.Println(now)
// 分别获取年月日
year := now.Year()
month := now.Month()
day := now.Day()
hour := now.Hour()
minute := now.Minute()
second := now.Second()
// 格式化输出
// 02d表示数字不够两位前面补0
fmt.Printf("%02d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)
// 获取时间戳
fmt.Println(now.Unix()) // 获取以秒为单位的时间戳
fmt.Println(now.UnixNano()) // 获取以以纳秒为单位的时间戳
}
时间戳转换
时间戳转换为 Time 类型
package main
import (
"fmt"
"time"
)
func main() {
timestamp := time.Now().Unix()
// 时间戳转time, 第二个参数是对纳秒数的精确为长度
timeObj := time.Unix(timestamp, 0)
fmt.Println(timeObj)
// 分别获取年月日
year := timeObj.Year()
month := timeObj.Month()
day := timeObj.Day()
hour := timeObj.Hour()
minute := timeObj.Minute()
second := timeObj.Second()
// 格式化输出
// 02d表示数字不够两位前面补0
fmt.Printf("%02d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)
}
golang 源码中的常量定义
const (
// 纳秒
Nanosecond Duration = 1
// 微秒
Microsecond = 1000 * Nanosecond
// 毫秒
Millisecond = 1000 * Microsecond
// 秒
Second = 1000 * Millisecond
// 分
Minute = 60 * Second
// 时
Hour = 60 * Minute
)
时间格式化
YYYY-MM-dd hh:mm:ss2006-01-02 15:04:05
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now)
// 使用time.Now().Format()格式化, 2006-01-02 15:04:05 是go语言诞生时间,格式化必须写这个时间,格式自定义
nowStr := now.Format("2006-01-02 15:04:05")
fmt.Println(nowStr)
}