美文网首页
go time 包练习

go time 包练习

作者: 天空蓝雨 | 来源:发表于2020-07-11 10:36 被阅读0次

go time 包练习

package main  
/* time  包练习 */

import (
    "fmt"
    "time"

)

// 时间字符串的获取
func get_now_time_str(){
    // 主要使用 time.Now()  获取当前时间对象,然后在进行其他的操作
    now := time.Now()
    year_str := now.Year()  // 年字符串
    month_str := now.Month() // 月份
    day_str := now.Day()  // 天
    hour_str := now.Hour()  // 小时
    minute_str := now.Minute()  // 分钟
    second_str := now.Second() // 秒
    fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", year_str, month_str, day_str,
                                             hour_str, minute_str, second_str)  // 拼
接字符串
}


// 获取时间戳
func get_stamp_time(){
    // 时间对象转时间戳
    // timeobj.Unix()   10位秒
    // timeobj.UnixNano()  纳秒
    
    sec_stamp := time.Now().Unix()  
    na_sec_stamp := time.Now().UnixNano()
    fmt.Printf("秒: %d, 纳秒:%d", sec_stamp, na_sec_stamp)
}

// 时间戳转化为时间对象
func stamp2timeboj(){
    stamp := time.Now().Unix()
    time_obj := time.Unix(stamp, 0)  // 第二个参数是精度单位应该是  纳秒好像 1000000000 
是精确到秒了  0 也是精确到秒
    fmt.Printf("%v\n", time_obj)
    fmt.Printf("%02d", time_obj.Month())
}

// 获取星期几
func get_weekday_str(){
    weekday := time.Now().Weekday()
    fmt.Printf("%v", weekday.String())

}

// 时间操作函数
// 添加時間
func add_time(){  
    // func (t Time) Add(d Duration) Time  函數原型 参数是时间单位对象
    now := time.Now()
    one_hour_later := now.Add( -time.Hour )
    fmt.Printf("現在是 %v, 一小時後是 %v", now, one_hour_later)
}

// 相减 获得时间单位对象
func sub_time(){
    // func (t Time) Sub(u Time) Duration 函数参数是 Time 对象
    now := time.Now()
    one_hour_before := now.Sub( time.Now().Add( -time.Hour))  
    fmt.Printf("现在是: %v, 一小时前是: %v", now, one_hour_before)

}

// 判斷兩個時間是不是相同
func equal_time(){
// func (t Time) Equal(u Time) bool   比普通 的比较多了时区地点的比较 
    now1 := time.Now()
    now2 := time.Now()
    fmt.Printf("%v", now1.Equal(now2))  // true   这里 使用  == 也是 true 的

}
// 判断一个时间点是不是在令一个时间点值钱
func is_before(){
    now := time.Now()
    fmt.Printf("%v", now.Before(now.Add( -time.Hour)))
}
// 判断一个时间点是不是在令一个时间点之后
func is_after(){
    now := time.Now()
    fmt.Printf("%v", now.After( now.Add( -time.Hour ))) 

}

// 定时器
func timetick(){
// 定时本质是一个管道
    tick := time.Tick(time.Second)
    for i := range tick{
        fmt.Println(i)
    }

}

// 时间格式化 (这个就有点奇葩了)
func format_time(){
    // 如果想省事还不如自己写呢。 因为你要记住 2006-01-02 15:04:05.000 Mon Jan  这个参
数(go 的生日)
    now := time.Now()
    fmt.Printf("%v \n", now.Format("2006-01-02 15:04:05.000 Mon Jan")) // 24 小时制 :
2020-07-07 19:31:27.972 Tue Jul
    fmt.Printf("%v\n", now.Format("2006-01-02 15:04:05.000 PM Mon Jan")) // 12 小时制 :
 2020-07-07 19:35:35.690 PM Tue Jul  
    fmt.Printf("%v\n", now.Format("2006/01/02 15:04"))  // 2020/07/07 19:37
    fmt.Printf("%v", now.Format("2006/01/02"))  // 2020/07/07


}

// 解析字符串格式的时间
func parse_time_str(){
    // func Parse(layout, value string) (Time, error)
   
    var layout string = "2006-01-02 15:04:05"
    var timeStr string = "2019-12-12 15:22:12"
    timeObj1, _ := time.Parse(layout, timeStr)
    fmt.Println(timeObj1)  // 2019-12-12 15:22:12 +0000 UTC
}


func main(){
    // add_time()
    // sub_time()
    // equal_time()
    // is_before()
    // is_after()
    // timetick()
    // format_time()

}

相关文章

  • go time 包练习

    go time 包练习

  • go time包

    分析time包里面的函数用法及功能 前言 本文章只是针对自己在工作学习中遇到的实际问题,然后探究相关知识点得出的结...

  • Go语言基础之time标准库

    时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法。 time包 time包提供...

  • Go-time.After

    GO-time包里sleep是最常用,其中time.after用法笔记如下: 首先是time包里的定义 直译: 等...

  • 【go语言学习】标准库之time

    time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 一、时间类型 go语言源码: 通过time包的...

  • go time包的使用

    类型 time.Time{} 时间类型,包含了秒和纳秒以及Location time.Month() type M...

  • Go语言使用通道响应计时器的事件

    参考:http://c.biancheng.net/view/103.html Go语言中的 time 包提供了计...

  • Go语言中的定时器

    定时器 Go的定时器是在经过一段时间后做一些事情,位于标准库的time包。主要是time.Timer, time....

  • go语言 time包的用法

    获取当前时间, now := time.Now()用Format进行格式化打印 input output 调用ti...

  • go http 包练习

    参见:下载包 设置代理妈的,下载包有时能下,有时候就卡住。手动安装包使用 go module 管理包 go-mod...

网友评论

      本文标题:go time 包练习

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