go time 包练习
2020-07-11 本文已影响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()
}