time包
time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。
时间类型
time.Timetime.Now()
时间戳
时间戳是自1970年1月1日(08:00:00GMT)至当前时间的总毫秒数。它也被称为Unix时间戳(UnixTimestamp)。
基于时间对象获取时间戳的示例代码如下:
package mainimport ("fmt""time")func main() {// 获取当前时间 2022-07-19 10:03:42.70981 +0800 CST m=+0.000080935now := time.Now()fmt.Println(now)// 时间戳 秒fmt.Println(now.Unix())// 时间戳 毫秒fmt.Println(now.UnixMilli())// 时间戳 纳秒fmt.Println(now.UnixNano())}
time.Unix()
package mainimport ("fmt""time")func main() {// 获取当前时间 2022-07-19 10:03:42.70981 +0800 CST m=+0.000080935now := time.Now()fmt.Println(now)// 时间戳转时间类型unix := time.Unix(now.Unix(), 0)fmt.Println(unix)}
时间间隔
time.Durationtimetime.Duration
time
例如:time.Duration表示1纳秒,time.Second表示1秒。
const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Millisecond Minute = 60 * Second Hour = 60 * Minute)
同时,time.Duration 提供了能获取各时间粒度数值的方法
func (d Duration) Nanoseconds() int64 {} // 纳秒func (d Duration) Microseconds() int64 {} // 微秒func (d Duration) Milliseconds() int64 {} // 毫秒func (d Duration) Seconds() float64 {} // 秒func (d Duration) Minutes() float64 {} // 分钟func (d Duration) Hours() float64 {} // 小时
时间操作
Add
func (t Time) Add(d Duration) Time {}
Sub
func (t Time) Sub(u Time) Duration {}
AddDate
func (t Time) AddDate(years int, months int, days int) Time {}
time.Now() time
Sincetime.Now().Sub(t)
func Since(t Time) Duration {}
Untilt.Sub(time.Now())
func Until(t Time) Duration {}
使用示例
时间格式化
FormatY-m-d H:M:S
补充:如果想格式化为12小时方式,需指定PM。
Formatetime.Time
Parsetime.Time