Go语言中的time函数的常用方法
获取当前时间和时间戳
/**
* @Author: fengzhilaoling
* @Date: 2021/4/27 6:05
**/
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
fmt.Println(now)
// 距离1970-01-01的秒数
timestamp := time.Now().Unix()
// 距离1970-01-01的纳秒数
result := time.Now().UnixNano()
fmt.Println(timestamp)
fmt.Println(result)
}
时间戳和时间的相互转换
上面已经说过时间转换为时间戳了,下面只介绍时间戳转化为时间
/**
* @Author: fengzhilaoling
* @Date: 2021/4/27 6:05
**/
package main
import (
"fmt"
"time"
)
func main() {
// 距离1970-01-01的秒数
timestamp := 1619475378
// 距离1970-01-01的纳秒数
result := 1619475378008771800
// 时间戳转换为时间
timestampTime := time.Unix(int64(timestamp), 0)
fmt.Println(timestampTime)
resultTime := time.Unix(0, int64(result))
fmt.Println(resultTime)
}
time.Unix(秒数, 纳秒数)
time中的Unix函数需要传达两个参数秒数的int64值和纳秒数的int64值
时间格式化为字符串和字符串格式化为时间
GO中的时间参照格式
Go语言中并没有像java等语言一样采用%Y%m%d等来作为时间格式化的参照
GO语言是使用了自己的诞生时间2006作为年的参照
GO语言中的短格式为:06-1-2 3:4
GO语言中的长格式为:2006-01-02 03:04
2006表示年,分别用1、2、3、4来表示月、日、时、分,长格式就是在前边加0表示两位
其中时间的24小时格式表示为:15
时间转换为字符串
/**
* @Author: fengzhilaoling
* @Date: 2021/4/27 6:05
**/
package main
import (
"fmt"
"time"
)
func main() {
nowTime := time.Now()
timeString := nowTime.Format("2006-01-02 15:04")
fmt.Println(timeString)
}
时间字符串转换为时间
/**
* @Author: fengzhilaoling
* @Date: 2021/4/27 6:05
**/
package main
import (
"fmt"
"time"
)
func main() {
timeString := "2018-08-01 20:08"
nowTime ,_ := time.Parse("2006-01-02 15:04", timeString)
fmt.Println(nowTime)
}