详解Golang time包中的结构体time.Time
更新时间:2023年07月28日 09:16:03 作者:路多辛
在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作,本文先讲解一下 time 包中的结构体 time.Time,需要的朋友可以参考下
time.Time
time.Time 类型用来表示一个具体的时间点,可以精确到纳秒。结构体定义和对应的方法如下:
type Time struct { wall uint64 ext int64 loc *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 main import ( "fmt" "time" ) 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 时间点前面。
其他方法就不一一说明了,可以参考官方文档详细查看。
到此这篇关于详解Golang time包中的结构体time.Time的文章就介绍到这了,更多相关Golang结构体time.Time内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
go gin中间件关于 c.next()、c.abort()和return的使用小结
中间件的执行顺序是按照注册顺序执行的,中间件可以通过 c.abort() + retrurn 来中止当前中间件,后续中间件和处理器的处理流程, 这篇文章给大家介绍go gin中间件关于 c.next()、c.abort()和return的使用小结,感兴趣的朋友跟随小编一起看看吧2024-03-03
最新评论