GoLang Time时间操作函数讲解【golang项目】

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