日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFramegtime-時間對象

時間對象

創(chuàng)建?gtime.Time?對象可以通過標準庫?time.Time?對象、?Unix?時間戳、時間字符串(如:?2018-07-18 12:01:00?)、自定義時間字符串(需要給定格式,支持自定義格式及標準庫格式)。

創(chuàng)新互聯(lián)建站主營霍州網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,APP應用開發(fā),霍州h5重慶小程序開發(fā)搭建,霍州網(wǎng)站營銷推廣歡迎霍州等地區(qū)企業(yè)咨詢

創(chuàng)建對象

可以通過?gtime.New?方法創(chuàng)建?gtime.Time?對象,該方法支持?time.Time?、時間戳、時間字符串創(chuàng)建對象。其中時間戳支持到納秒的時間整型長度。 例如:=

// 通過時間字符串創(chuàng)建
gtime.New("2020-10-24 12:00:00")
// 通過time.Time對象創(chuàng)建
gtime.New(time.Now())
// 通過時間戳(秒)創(chuàng)建
gtime.New(1603710586)
// 通過時間戳(納秒)創(chuàng)建
gtime.New(1603710586660409000)

此外,時間字符串支持常見時間類型,例如:

2017-12-14 04:51:34 +0805 LMT
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/10/31 - 16:38:46
2018-02-09
2018.02.09

01-Nov-2018 11:50:28
01/Nov/2018 11:50:28
01.Nov.2018 11:50:28
01.Nov.2018:11:50:28
日期連接符號支持'-'、'/'、'.'

使用示例

示例1,自定義格式化語法

package main

import (
    "fmt"
    "github.com/GOgf/gf/v2/os/gtime"
)

func main() {
    formats := []string{
        "Y-m-d H:i:s.u",
        "D M d H:i:s T O Y",
        "\\T\\i\\m\\e \\i\\s: h:i:s a",
        "2006-01-02T15:04:05.000000000Z07:00",
    }
    t := gtime.Now()
    for _, f := range formats {
        fmt.Println(t.Format(f))
    }
}

在該示例中,我們給定了四種?format?格式,并將當前時間用這四種格式轉換后打印出來。執(zhí)行后,輸出結果如下:

2018-07-22 11:17:13.797
Sun Jul 22 11:17:13 CST +0800 2018
Time is: 11:17:13 am
2006-01-02CST15:04:05.000000000Z07:00

可以看到,這個示例演示了幾個需要注意的地方:

  1. 如果使用的字母與格式化字符沖突時,可以使用?\?符號轉義該字符,這樣時間格式解析器會認為該字符不是格式化字符,而是普通字母。因此這里的第三個字符串示例輸出為:?Time is: 11:17:13 am ?
  2. 使用?Format?方法接收的是自定義的時間格式化語法(如:?Y-m-d H:i:s?),而非標準庫的時間格式語法(如:?2006-01-02 15:04:05?),因此在這里的第四個字符串示例中原樣輸出參數(shù)值;

示例2,標準庫格式化語法

package main

import (
    "fmt"
    "github.com/gogf/gf/v2/os/gtime"
)

func main() {
    formats := []string{
        "2006-01-02 15:04:05.000",
        "Mon Jan _2 15:04:05 MST 2006",
        "Time is: 03:04:05 PM",
        "2006-01-02T15:04:05.000000000Z07:00 MST",
    }
    t := gtime.Now()
    for _, f := range formats {
        fmt.Println(t.Layout(f))
    }
}

在該示例中,我們使用四種標準庫的時間格式化語法格式化當前的時間并輸出結果到終端。執(zhí)行后,輸出結果為:

2018-07-22 11:28:13.945
Sun Jul 22 11:28:13 CST 2018
Time is: 11:28:13 AM
2018-07-22T11:28:13.945153275+08:00 CST

有幾個需要說明的地方:

  1. 自定義時間格式化語法與標準庫時間格式化語法并不沖突,前者使用?Format?方法,后者使用?Layout?方法行格式化,相互獨立,互不沖突,無法混用;
  2. 標準庫的時間格式化語法自有特點,是不是感覺有點復雜;

示例3,時間對象鏈式操作

package main

import (
	"fmt"
	"github.com/gogf/gf/v2/os/gtime"
	"time"
)

func main() {
	// 去年今日,系統(tǒng)時間
	fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d"))

	// 去年今日,UTC時間
	fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d H:i:s T"))
	fmt.Println(gtime.Now().AddDate(-1, 0, 0).UTC().Format("Y-m-d H:i:s T"))

	// 下個月1號凌晨0點整
	fmt.Println(gtime.Now().AddDate(0, 1, 0).Format("Y-m-01 00:00:00"))

	// 1個小時前
	fmt.Println(gtime.Now().Add(-time.Hour).Format("Y-m-d H:i:s"))
}

執(zhí)行后,輸出結果為:

2020-09-19
2020-09-19 15:51:48 CST
2020-09-19 07:51:48 UTC
2021-10-01 00:00:00
2021-09-19 14:51:48

當前名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFramegtime-時間對象
文章地址:http://m.5511xx.com/article/dhgpici.html