前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >44. goroutine、channel、time的例子 | 厚土Go学习笔记

44. goroutine、channel、time的例子 | 厚土Go学习笔记

作者头像
李海彬
发布2018-03-19 11:45:37
5940
发布2018-03-19 11:45:37
举报
文章被收录于专栏:Golang语言社区

格式化时间样式,利用 goroutine 实现获取和格式化当前时间,并且通过 channel 返回到主函数并打印出来。

在 go 语言中,时间格式化有一个标准时间必须记住 2006-01-02 15:04:05 -0700,为什么是这个时间呢?我们换个样式来看一下 “01-02 03:04:05 pm 2006 -0700”,这就是 1234567啊!当然,-0700说的是时区。

格式化的写法如下

代码语言:javascript
复制
tn := time.Now().Format("2006年01月02日 15点04分05秒.0000000 时区-0700")

为了实现 goroutine ,我们准备一个函数,用通道作为参数。

代码语言:javascript
复制
func timenow(ch chan string)  {
    tn := time.Now().Format("2006年01月02日 15点04分05秒.0000000 时区-0700")
    ch <- tn
}

在主函数中,建立一个通道,并且写一个 10 次的 for 循环来执行 timenow 函数。为了让时间有一个间隔,每次循环,我们间隔 0.5 秒。

代码语言:javascript
复制
ch := make(chan string)
for i := 0; i < 10; i++{
    go timenow(ch)
    fmt.Println(<-ch)
    time.Sleep(500*time.Millisecond)
}
看完整代码
代码语言:javascript
复制
package main

import (
    "time"
    "fmt"
)

func timenow(ch chan string)  {
    tn := time.Now().Format("2006年01月02日 15点04分05秒.0000000 时区-0700")
    ch <- tn
}
func main() {
    ch := make(chan string)
    for i := 0; i < 10; i++{
        go timenow(ch)
        fmt.Println(<-ch)
        time.Sleep(500*time.Millisecond)
    }
}

运行结果

代码语言:javascript
复制
2017年09月02日 11点49分51秒.3027569 时区+0800
2017年09月02日 11点49分51秒.8839153 时区+0800
2017年09月02日 11点49分52秒.3845286 时区+0800
2017年09月02日 11点49分52秒.8851379 时区+0800
2017年09月02日 11点49分53秒.3851748 时区+0800
2017年09月02日 11点49分53秒.8855677 时区+0800
2017年09月02日 11点49分54秒.3858873 时区+0800
2017年09月02日 11点49分54秒.8861271 时区+0800
2017年09月02日 11点49分55秒.3868477 时区+0800
2017年09月02日 11点49分55秒.8874858 时区+0800
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 看完整代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档