美文网首页
18-Go语言时间和日期

18-Go语言时间和日期

作者: 喝酸奶要舔盖__ | 来源:发表于2018-10-01 16:08 被阅读0次

    时间和日期函数

    当前时间获取
    • 函数:time.Now()
    //1.获取当前时间
    now := time.Now()
    fmt.Println(now) //2018-10-01 11:05:13.437611 +0800 CST m=+0.000000001
    

    日期函数
    //2.获取当前时间的年月日时分秒
    fmt.Println("年",now.Year())
    fmt.Println("月",now.Month())
    fmt.Println("日",now.Day())
    fmt.Println("时",now.Hour())
    fmt.Println("分",now.Minute())
    fmt.Println("秒",now.Second())
    fmt.Println("周期",now.Weekday())
    

    日期字符串格式化
    • 第一种格式化方法
    //3.按照指定的格式生成字符串
        t := time.Now()
        //第一种指定格式
        //fmt.Printf("%d-%d-%d %d:%d:%d\n", t.Year(),t.Month(),t.Day(),t.Hour(),t.Minute(),t.Second())
    
        //第二种方法
        //func Sprintf(format string, a ...interface{}) string
        str := fmt.Sprintf("%d-%d-%d %d:%d:%d\n", t.Year(),t.Month(),t.Day(),t.Hour(),t.Minute(),t.Second())
        fmt.Println(str)
    
    • 第二种格式化方式
      • 按照2006/01/02 15:04:05 这个字符串是Go语言规定的, 各个数字都是固定的
    //使用format函数格式化时间
        //2006/01/02 15:04:05 这个字符串是Go语言规定的, 各个数字都是固定的
        //字符串中的各个数字可以只有组合, 这样就能按照需求返回格式化好的时间
        t := time.Now()
        str := t.Format("2006-01-02 15:04:05")
        str1 := t.Format("2006")
        str2 := t.Format("15:04")
        fmt.Println(str)
        fmt.Println(str1)
        fmt.Println(str2)
    

    时间常量

    const (
    Nanosecond Duration = 1 // 纳秒
    Microsecond = 1000 * Nanosecond // 微秒
    Millisecond = 1000 * Microsecond // 毫秒
    Second = 1000 * Millisecond // 秒
    Minute = 60 * Second // 分钟
    Hour = 60 * Minute // 小时
    )

    // 时间常量常见的就是配合休眠函数一起使用
    
        for{
            //注意点: 不能使用时间常量 * 浮点类型来表示,因为不同的数据类型参与运算
            //time.Sleep(time.Second) //每隔1秒打印一次
            time.Sleep(time.Microsecond * 100) //每隔100毫秒打印一次
            fmt.Println("我打印了")
        }
    

    时间戳
    • 从1970年1月1日到现在时间间隔
    • Unix: 返回当前时间距离1970年1月1日有多少秒
    • UnixNano: 返回当前时间距离1970年1月1日有多少纳秒
    //获取时间戳
        // go语言中的时间戳是从1970年1月1日开始计算的
        //Unix: 返回当前时间距离1970年1月1日有多少秒
        //UnixNano: 返回当前时间距离1970年1月1日有多少纳秒
    
        //获取当前的时间戳
        fmt.Println(time.Now().Unix()) //以秒的方式表示
        fmt.Println(time.Now().UnixNano()) //以纳秒的方式表示
    
        //应用场景
        //生成随机数
        //在rand包中的函数
    
        for{
            time.Sleep(time.Second)
            //1.设置随机因子(一定要保证每次运行随机因子都不一样才能真正的生成随机数)
            rand.Seed(time.Now().UnixNano())
            //2.生成随机数
            num := rand.Intn(7) //0-6之间的随机数
            fmt.Println(num)
        }
    

    相关文章

      网友评论

          本文标题:18-Go语言时间和日期

          本文链接:https://www.haomeiwen.com/subject/csenoftx.html