时间和日期

作者: freelang | 来源:发表于2018-08-19 20:54 被阅读5次

    时间和日期

    image

    time 包为我们提供了一个数据类型 time.Time(作为值使用)以及显示和测量时间和日期的功能函数。

    当前时间可以使用 time.Now() 获取,或者使用 t.Day()t.Minute() 等等来获取时间的一部分;你甚至可以自定义时间格式化字符串,例如: fmt.Printf("%02d.%02d.%4d\n", t.Day(), t.Month(), t.Year()) 将会输出 21.07.2011

    Duration 类型表示两个连续时刻所相差的纳秒数,类型为 int64。Location 类型映射某个时区的时间,UTC 表示通用协调世界时间。

    包中的一个预定义函数 func (t Time) Format(layout string) string 可以根据一个格式化字符串来将一个时间 t 转换为相应格式的字符串,你可以使用一些预定义的格式,如:time.ANSICtime.RFC822

    一般的格式化设计是通过对于一个标准时间的格式化描述来展现的,这听起来很奇怪,但看下面这个例子你就会一目了然:

    
    fmt.Println(t.Format("02 Jan 2006 15:04")) 
    
    

    输出:

    21 Jul 2011 10:31

    其它有关时间操作的文档请参阅 官方文档译者注:国内用户可访问 该页面 )。

    示例 4.20 time.go

    
    package main
    
    import (
    
     "fmt"
    
     "time"
    
    )
    
    
    
    var week time.Duration
    
    func main() {
    
     t := time.Now()
    
     fmt.Println(t) // e.g. Wed Dec 21 09:52:14 +0100 RST 2011
    
     fmt.Printf("%02d.%02d.%4d\n", t.Day(), t.Month(), t.Year())
    
     // 21.12.2011
    
     t = time.Now().UTC()
    
     fmt.Println(t) // Wed Dec 21 08:52:14 +0000 UTC 2011
    
     fmt.Println(time.Now()) // Wed Dec 21 09:52:14 +0100 RST 2011
    
     // calculating times:
    
     week = 60 * 60 * 24 * 7 * 1e9 // must be in nanosec
    
     week_from_now := t.Add(week)
    
     fmt.Println(week_from_now) // Wed Dec 28 08:52:14 +0000 UTC 2011
    
     // formatting times:
    
     fmt.Println(t.Format(time.RFC822)) // 21 Dec 11 0852 UTC
    
     fmt.Println(t.Format(time.ANSIC)) // Wed Dec 21 08:56:34 2011
    
     fmt.Println(t.Format("02 Jan 2006 15:04")) // 21 Dec 2011 08:52
    
     s := t.Format("20060102")
    
     fmt.Println(t, "=>", s)
    
     // Wed Dec 21 08:52:14 +0000 UTC 2011 => 20111221
    
    }
    
    
    
    

    输出的结果已经写在每行 // 的后面。

    image

    相关文章

      网友评论

        本文标题:时间和日期

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