教育网站的建设,上海网站建设基础,企业网站内容运营方案策划,旧域名新网站在日常开发过程中#xff0c;会频繁遇到对时间进行操作的场景#xff0c;使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包#xff0c;本文先讲解一下 time 包中的结构体 time.Time。
time.Time
time.Time 类型用来表示一个…在日常开发过程中会频繁遇到对时间进行操作的场景使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包本文先讲解一下 time 包中的结构体 time.Time。
time.Time
time.Time 类型用来表示一个具体的时间点可以精确到纳秒。结构体定义和对应的方法如下
type Time struct {wall uint64ext int64loc *Location
}
获取各种时间点属性的方法
func (t Time) Date() (year int, month Month, day int)获取日期年、月、日信息。func (t Time) Year() int获取年份信息。func (t Time) YearDay() int获取一年中第几天1~365。func (t Time) Month() Month获取月份信息返回的是一个 Month 类型func (t Time) ISOWeek() (year, week int)返回 ISO 8601 格式的年份和第几周1-53。func (t Time) Weekday() Weekday返回的一个Weekday类型。func (t Time) Day() int获取月内第几数1~31。func (t Time) Clock() (hour, min, sec int)获取时间时、分、秒信息。func (t Time) Hour() int获取小时信息0~23。func (t Time) Minute() int获取分钟信息0~59。func (t Time) Second() int获取秒信息0~59。func (t Time) Nanosecond() int获取纳秒信息0~999999999。func (t Time) Unix() int64获取秒时间戳。func (t Time) UnixMilli() int64获取毫秒时间戳。func (t Time) UnixMicro() int64获取微秒时间戳。func (t Time) UnixNano() int64获取纳秒时间戳。func (t Time) String() string返回 2006-01-02 15:04:05.999999999 -0700 MST 类型的时间格式。func (t Time) Location() *Location获取时区信息。
看个简单的示例
package mainimport (fmttime
)func main() {t : time.Now()fmt.Println(t.Date())fmt.Println(t.Year())fmt.Println(t.YearDay())fmt.Println(t.Month())fmt.Println(t.ISOWeek())fmt.Println(t.Weekday())fmt.Println(t.Day())fmt.Println(t.Clock())fmt.Println(t.Hour())fmt.Println(t.Minute())fmt.Println(t.Second())fmt.Println(t.Nanosecond())fmt.Println(t.Unix())fmt.Println(t.UnixMilli())fmt.Println(t.UnixMicro())fmt.Println(t.UnixNano())fmt.Println(t.String())fmt.Println(t.Location())
}
时间处理方法比较、判断、解析
func (t Time) Format(layout string) string将时间格式化为指定的格式。func (t Time) Add(d Duration) Time加上指定的时间。func (t Time) AddDate(years int, months int, days int) Time返回将给定的年、月和日数加到 t 上后所对应的时间点。func (t Time) Sub(u Time) Duration返回两个时间点之间的时间差。func (t Time) Truncate(d Duration) Time截断指定的时间。func (t Time) Round(d Duration) Time将时间四舍五入到指定的时间。func (t Time) Equal(u Time) bool判断两个时间点是否相等。func (t Time) After(u Time) bool判断 t 时间点是否在 u 时间点后面。func (t Time) Before(u Time) bool判断 t 时间点是否在 u 时间点前面。
其他方法就不一一说明了可以参考官方文档详细查看。