go语言time包的学习(Time,Location,Duration,Timer,Ticker)
package main;
import (    "time"    "fmt")func main() {    //time.Time代表一个纳秒精度的时间点    var t time.Time;    //返回当前时间    t = time.Now();    fmt.Printf("%v\n", t);    //反回所在时区    fmt.Printf("%v\n", t.Location());    //返回UTC时间和UTC时区    fmt.Printf("%v %v\n", t.UTC(), t.UTC().Location());    //同上,In()返回指定时区的时间    fmt.Printf("%v %v\n", t.In(time.UTC), t.In(time.UTC).Location());    //返回当地时区的时间    fmt.Printf("%v %v\n", t.Local(), t.Local().Location());    //根据时间戳返回本地时间    //参数分别表示秒数和纳秒数    t2 := time.Unix(1487780010, 0);    fmt.Println(t2);    //根据指定时间返回time.Time    //分别指定年,月,日,时,分,秒,纳秒,时区    t3 := time.Date(2017, time.Month(5), 26, 15, 30, 20, 0, t.Location());    fmt.Println(t3);    //格式化输出时间    t4 := time.Now();    fmt.Println(t4.Format("2006-01-02 15:04:05"));    //获取时间信息    t5 := time.Now();    //返回日期    fmt.Println(t5.Date());    //返回年    fmt.Println(t5.Year());    //返回月    fmt.Println(t5.Month());    //返回日    fmt.Println(t5.Day());    //返回星期    fmt.Println(t5.Weekday());    //返回ISO 9601标准下的年份和星期编号    fmt.Println(t5.ISOWeek());    //返回时分秒    fmt.Println(t5.Clock());    //返回小时    fmt.Println(t5.Hour());    //返回分钟    fmt.Println(t5.Minute());    //返回秒    fmt.Println(t5.Second());    //返回纳秒    fmt.Println(t5.Nanosecond());    //返回一年中对应的天    fmt.Println(t5.YearDay());    //返回时区    fmt.Println(t5.Location());    //返回时区的规范名,时区相对于UTC的时间偏移量(秒)    fmt.Println(t5.Zone());    //返回时间戳    fmt.Println(t5.Unix());    //返回纳秒时间戳    fmt.Println(t5.UnixNano());    //时间的比较与计算    t6 := time.Now();    //是否零时时间    fmt.Println(t6.IsZero());    //t6时间在t5时间之后,返回真    fmt.Println(t6.After(t5));    //t5时间在t6时间之前,返回真    fmt.Println(t5.Before(t6));    //时间是否相同    fmt.Println(t6.Equal(t6));    //返回t6加上纳秒的时间    fmt.Println(t6.Add(10000));    //返回两个时间之差的纳秒数    fmt.Println(t6.Sub(t5));    //返回t6加1年,1月,1天的时间    fmt.Println(t6.AddDate(1, 1, 1));    //时间的序列化    t7 := time.Now();    //序列化二进制    bin, _ := t7.MarshalBinary();    //反序列化二进制    t7.UnmarshalBinary(bin)    fmt.Println(t7);    //序列化json    json, _ := t7.MarshalJSON();    fmt.Println(string(json));    //反序列化json    t7.UnmarshalJSON(json);    fmt.Println(t7);    //序列化文本    txt, _ := t7.MarshalText();    fmt.Println(string(txt));    //反序列化文本    t7.UnmarshalText(txt);    fmt.Println(t7);    //gob编码    gob, _ := t7.GobEncode();    t7.GobDecode(gob);    fmt.Println(t7);    //时间段time.Duration    dur := time.Duration(6666666600000);    //返回字符串表示    fmt.Println(dur.String());    //返回小时表示    fmt.Println(dur.Hours());    //返回分钟表示    fmt.Println(dur.Minutes());    //返回秒表示    fmt.Println(dur.Seconds());    //返回纳秒表示    fmt.Println(dur.Nanoseconds());    //时区time.Location    //返回时区名    fmt.Println(time.Local.String());    //通过地点名和时间偏移量返回时区    fmt.Println(time.FixedZone("Shanghai", 800));    //通过给定时区名称,返回时区    loc, _ := time.LoadLocation("Asia/Shanghai");    fmt.Println(loc);    //阻塞当前进程3秒    time.Sleep(time.Second * 3);    //定时器time.Timer    //创建一个1秒后触发定时器    timer1 := time.NewTimer(time.Second * 1);    <-timer1.C;    fmt.Println("timer1 end");    //1秒后运行函数    time.AfterFunc(time.Second * 1, func() {        fmt.Println("wait 1 second");    });    time.Sleep(time.Second * 3);    //打点器time.Ticker    //创建一个打点器,在固定1秒内重复执行    ticker := time.NewTicker(time.Second);    num := 1;    for {        if num > 5 {            //大于5次关闭打点器            ticker.Stop();            break;        }        //否则从打点器中获取chan        select {        case <-ticker.C:            num++;            fmt.Println("1 second...");        }    }}
    small_lei_it  技术无止境,追求更高。
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号