秦皇岛网站建设seowordpress 链接失效

当前位置: 首页 > news >正文

秦皇岛网站建设seo,wordpress 链接失效,百度推广长春分公司,设计素材网站无版权Go 的时间操作

  1. time 包 1.1. 时间类型 Go 语言中时间类型有两种#xff1a; time.Time#xff1a;表示时间的类型#xff0c;常见的有两种方式#xff1a; time.Now()#xff1a;获取当前的时间time.Date()#xff1a;根据指定的年、月、日、时、分、秒、纳秒等创…Go 的时间操作
  2. time 包 1.1. 时间类型 Go 语言中时间类型有两种 time.Time表示时间的类型常见的有两种方式 time.Now()获取当前的时间time.Date()根据指定的年、月、日、时、分、秒、纳秒等创建时间 time.Duration表示两个时间点之间经过的时间以纳秒为单位 1.2. 时间戳 时间戳是自 1970 年 1 月 1 日08:00:00GMT至当前时间的总毫秒数。它也被称为 Unix 时间戳UnixTimestamp。 1.3. 时间间隔 time.Duration 是 time 包定义的一个类型它代表两个时间点之间经过的时间以纳秒为单位。time.Duration 表示一段时间间隔可表示的最长时间段大约 290 年。 1.4. 时间操作 Go 语言中时间操作主要有两种 获取时间time.Now()、time.Date()格式化时间time.Format()、time.Parse()
  3. 获取时间 2.1. 获取当前时间 Go 语言中通过 time.Now()函数获取当前时间返回一个 time.Time 类型的本地时间。 func Now() Timepackage mainimport (fmttime )func main() {now : time.Now() // 获取当前时间fmt.Printf(current time:%v\n, now) }2.2. 获取指定时间 time.Date()函数可以获取指定的时间其参数分别是年、月、日、时、分、秒、纳秒、时区。 func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Timepackage mainimport (fmttime )func main() {// 获取指定时间date : time.Date(2020, 1, 1, 0, 0, 0, 0, time.Local)fmt.Printf(date:%v\n, date) }3. 格式化时间 3.1. 时间类型转字符串 Go 语言中可以通过 time.Time 类型的 Format()函数对时间进行格式化该函数的第一个参数是格式化的模板模板里面的时间必须是 2006-01-02 15:04:05 这个时间这个时间是固定的不然就会出错第二个参数是要格式化的时间。 func (t Time) Format(layout string) stringpackage mainimport (fmttime )func main() {now : time.Now() // 获取当前时间// 格式化的模板为Go的出生时间2006年1月2号15点04分 Mon Janfmt.Println(now.Format(2006-01-02 15:04:05.000 Mon Jan))fmt.Println(now.Format(2006/01/02 15:04))fmt.Println(now.Format(15:04 2006/01/02)) }3.2. 字符串转时间类型 Go 语言中可以通过 time.Parse()函数对字符串进行解析生成对应的 time.Time 类型的时间。 func Parse(layout, value string) (Time, error)package mainimport (fmttime )func main() {// 加载时区loc, _ : time.LoadLocation(Asia/Shanghai)// 按照指定时区和指定格式解析字符串时间timeObj, err : time.ParseInLocation(2006/01/02 15:04:05, 2020/01/01 00:00:00, loc)if err ! nil {fmt.Printf(parse time failed, err:%v\n, err)return}fmt.Println(timeObj) }4. 时间常量 const (Nanosecond Duration 1Microsecond 1000 * NanosecondMillisecond 1000 * MicrosecondSecond 1000 * MillisecondMinute 60 * SecondHour 60 * Minute )5. 时间操作 5.1. 获取时间戳 时间戳是自 1970 年 1 月 1 日08:00:00GMT至当前时间的总毫秒数。它也被称为 Unix 时间戳UnixTimestamp。 func (t Time) Unix() int64package mainimport (fmttime )func main() {now : time.Now()timestamp1 : now.Unix() // 时间戳timestamp2 : now.UnixNano() // 纳秒时间戳fmt.Printf(current timestamp1:%v\n, timestamp1)fmt.Printf(current timestamp2:%v\n, timestamp2) }5.2. 时间间隔 time.Duration 是 time 包定义的一个类型它代表两个时间点之间经过的时间以纳秒为单位。time.Duration 表示一段时间间隔可表示的最长时间段大约 290 年。 const (Nanosecond Duration 1Microsecond 1000 * NanosecondMillisecond 1000 * MicrosecondSecond 1000 * MillisecondMinute 60 * SecondHour 60 * Minute )package mainimport (fmttime )func main() {now : time.Now()// 程序执行到这里会暂停2秒time.Sleep(2 * time.Second)fmt.Println(2 seconds later)// 两个时间相减fmt.Printf(passed %v\n, time.Since(now)) }5.3. 定时器 time.Timer 类型表示单次时间事件。当定时器到期时当前时间会被发送给 C除非定时器是被 AfterFunc 函数创建的。因此如果程序持有定时器的唯一引用当定时器触发时它会被释放并停止定时器。 func AfterFunc(d Duration, f func()) *Timerpackage mainimport (fmttime )func main() {timer : time.Tick(time.Second) // 定义一个1秒间隔的定时器for t : range timer {fmt.Println(t) // 1秒钟执行一次} }5.4. 定时器 time.Ticker 类型代表一个间隔触发的时间事件它会以一个间隔例如1 秒、1 分钟等触发多次发送一个事件给一个通道。 func Tick(d Duration) *Tickerpackage mainimport (fmttime )func main() {ticker : time.NewTicker(time.Second) // 定义一个1秒间隔的定时器for t : range ticker.C {fmt.Println(t) // 1秒钟执行一次} }6. 时区 Go 语言中通过 LoadLocation()函数加载时区信息它的参数是时区的名字。时区信息我们可以通过 time 包中的 LoadLocation(name string) (*Location, error)函数获取它返回一个 Location 对象然后我们就可以通过 LoadLocation()函数加载时区信息了。 func LoadLocation(name string) (*Location, error)package mainimport (fmttime )func main() {// 加载时区loc, err : time.LoadLocation(Asia/Shanghai)if err ! nil {fmt.Printf(load location failed, err:%v\n, err)return}// 按照指定时区和指定格式解析字符串时间timeObj, err : time.ParseInLocation(2006/01/02 15:04:05, 2020/01/01 00:00:00, loc)if err ! nil {fmt.Printf(parse time failed, err:%v\n, err)return}fmt.Println(timeObj) }7. 时区转换 func (t Time) In(loc *Location) Timepackage mainimport (fmttime )func main() {// 加载时区loc, _ : time.LoadLocation(Asia/Shanghai)// 按照指定时区和指定格式解析字符串时间timeObj, err : time.ParseInLocation(2006/01/02 15:04:05, 2020/01/01 00:00:00, loc)if err ! nil {fmt.Printf(parse time failed, err:%v\n, err)return}fmt.Println(timeObj)// 按照东八区的时区和格式去解析字符串时间timeObj, err time.Parse(2006/01/02 15:04:05, 2020/01/01 00:00:00)if err ! nil {fmt.Printf(parse time failed, err:%v\n, err)return}fmt.Println(timeObj)// 将timeObj转换到指定时区newTime : timeObj.In(loc)fmt.Println(newTime) }