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

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

    格式化的写法如下

    1. tn := time.Now().Format("2006年01月02日 15点04分05秒.0000000 时区-0700")

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

    1. func timenow(ch chan string) {
    2. tn := time.Now().Format("2006年01月02日 15点04分05秒.0000000 时区-0700")
    3. ch <- tn
    4. }

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

    1. ch := make(chan string)
    2. for i := 0; i < 10; i++{
    3. go timenow(ch)
    4. fmt.Println(<-ch)
    5. time.Sleep(500*time.Millisecond)
    6. }

    完整代码

    1. package main
    2. import (
    3. "time"
    4. "fmt"
    5. )
    6. func timenow(ch chan string) {
    7. tn := time.Now().Format("2006年01月02日 15点04分05秒.0000000 时区-0700")
    8. ch <- tn
    9. }
    10. func main() {
    11. ch := make(chan string)
    12. for i := 0; i < 10; i++{
    13. go timenow(ch)
    14. fmt.Println(<-ch)
    15. time.Sleep(500*time.Millisecond)
    16. }
    17. }

    goroutine、channel、time的例子 - 图1