工具方法

    方法比较简单,比较常用的是以下几个方法;

    1. Second用于获得当前时间戳,MillisecondMicrosecondNanosecond用于获得当前的毫秒、微秒和纳秒值;
    2. SetTimeZone用于设置当前进程的全局时区;
    3. 其他方法说明请查看接口文档;
    1. Datetime : 2018-07-22 11:52:22
    2. Millisecond: 1532231542688
    3. Microsecond: 1532231542688688
    4. Nanosecond : 1532231542688690259

    执行后,输出结果为:

    1. 2018-11-21 22:50:56.723429 +0800 CST m=+0.000649366

    使用示例:

    package main
    
    import (
        "fmt"
        "github.com/gogf/gf/os/glog"
        "github.com/gogf/gf/os/gtime"
        "time"
    )
    
    func main() {
        array := []string{
            "2017-12-14 04:51:34 +0805 LMT",
            "2006-01-02T15:04:05Z07:00",
            "2014-01-17T01:19:15+08:00",
            "2018-02-09T20:46:17.897Z",
            "2018-02-09 20:46:17.897",
            "2018-02-09T20:46:17Z",
            "2018-02-09 20:46:17",
            "2018.02.09 20:46:17",
            "2018-02-09",
            "2017/12/14 04:51:34 +0805 LMT",
            "2018/02/09 12:00:15",
            "01/Nov/2018:13:28:13 +0800",
            "01-Nov-2018 11:50:28 +0805 LMT",
            "01-Nov-2018T15:04:05Z07:00",
            "01-Nov-2018T01:19:15+08:00",
            "01-Nov-2018 11:50:28 +0805 LMT",
            "01/Nov/2018 11:50:28",
            "01/Nov/2018:11:50:28",
            "01.Nov.2018:11:50:28",
            "01/Nov/2018",
        }
        cstLocal, _ := time.LoadLocation("Asia/Shanghai")
        for _, s := range array {
            if t, err := gtime.StrToTime(s); err == nil {
                fmt.Println(s)
                fmt.Println(t.UTC().String())
                fmt.Println(t.In(cstLocal).String())
            } else {
                glog.Error(s, err)
            }
            fmt.Println()
        }
    }