golang time包

白昼怎懂夜的黑 提交于 2019-11-27 16:08:12

time类型 和 时间戳 的转换

timestamp := time.Now().Unix()  //timestamp为时间戳类型

tm := time.Unix(timestamp, 0)  //tm为Time类型

时间戳或time类型 转 字符串(格式化)

tm := time.Now() //tm为Time类型

timestamp := time.Now().Unix() //timestamp为时间戳类型

time.Now().String()  //没有格式化

fmt.Println(tm.Format("2006-01-02 03:04:05 PM"))  //格式化
fmt.Println(tm.Format("02/01/2006 15:04:05 PM"))  //24小时制

也可以直接输出  fmt.Println(time.Now())  output:2017-02-27 01:20:00.567634365 +0800 CST

指定时间的time类型  time.Date(2017, 02, 27, 20, 20, 20, 20, time.Local)

字符串 转 time类型或时间戳

x := "2017-02-27 17:30:20"
p, _ := time.Parse("2006-01-02 15:04:05", x)  //p为time类型
p.Unix() //p.Unix()为时间戳类型

time ticker

func main() {
    ticker := time.NewTicker(10 * time.Second)
    for i := 0; i < 10; i++ {
        time := <-ticker.C
        fmt.Println(time.String())
    }
}

输出:

2015-08-24 16:22:23.590564088 +0800 CST

2015-08-24 16:22:33.591194618 +0800 CST

2015-08-24 16:22:43.587720967 +0800 CST

2015-08-24 16:22:53.590231413 +0800 CST

2015-08-24 16:23:03.591164202 +0800 CST

ticket是一个只读的chanel。

go和其他语言的开发思路不一样。其他语言,多是注册回调函数,定时,时间到了调用回调。go是 通过 chan的阻塞实现的。

调用的地方,读取chan 。定时,时间到,向chan写入值,阻塞解除,调用函数。 

Duration

"持续时间"  https://studygolang.com/articles/12617

更多

package time  https://studygolang.com/pkgdoc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!