国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

GoFrame框架之gtime時間模塊,支持自定義時間格式化語法

Bryan / 1555人閱讀

摘要:文章來源通用時間管理模塊,封裝了常用的時間日期相關的方法。并支持自定義的日期格式化語法,格式化語法類似的語法。示例,自定義時間格式化語法在該示例中,我們給定了四種格式,并將當前時間用這四種格式轉換后打印出來。

文章來源:http://gf.johng.cn/494387

通用時間管理模塊,封裝了常用的時間/日期相關的方法。并支持自定義的日期格式化語法,格式化語法類似PHP的date語法。

使用方式:

import "gitee.com/johng/gf/g/os/gtime"

方法列表: godoc.org/github.com/johng-cn/gf/g/os/gtime

時間格式

gtime模塊最大的特點是支持自定義的時間格式,參考PHP日期時間格式語法,以下是支持的時間格式語法列表:

時間對象

方法列表:

type Time
    func New(t ...time.Time) *Time
    func NewFromStr(str string) *Time
    func NewFromStrFormat(str string, format string) *Time
    func NewFromStrLayout(str string, layout string) *Time
    func NewFromTime(t time.Time) *Time
    func NewFromTimeStamp(timestamp int64) *Time
    func Now() *Time
    func (t *Time) Add(d time.Duration) *Time
    func (t *Time) AddDate(years int, months int, days int) *Time
    func (t *Time) Clone() *Time
    func (t *Time) Format(format string) string
    func (t *Time) Layout(layout string) string
    func (t *Time) Local() *Time
    func (t *Time) Microsecond() int64
    func (t *Time) Millisecond() int64
    func (t *Time) Nanosecond() int64
    func (t *Time) Round(d time.Duration) *Time
    func (t *Time) Second() int64
    func (t *Time) String() string
    func (t *Time) ToLocation(location *time.Location) *Time
    func (t *Time) ToTime() time.Time
    func (t *Time) Truncate(d time.Duration) *Time
    func (t *Time) UTC() *Time

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

示例1,自定義時間格式化語法
package main

import (
    "fmt"
    "gitee.com/johng/gf/g/os/gtime"
)

func main() {
    formats := []string{
        "Y-m-d H:i:s.u",
        "D M d H:i:s T O Y",
        "Time is: 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

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

如果使用的字母與格式化字符沖突時,可以使用符號轉移該字符,這樣時間格式解析器會認為該字符不是格式化字符,而是普通字母。因此這里的第三個字符串示例輸出為:Time is: 11:17:13 am

使用Format方法接收的是自定義的時間格式化語法(如:Y-m-d H:i:s),而不是標準庫的事件格式語法(如:2006-01-02 15:04:05),且兩種語法不能混用,因此在這里的第四個字符串示例中原樣輸出參數(shù)值;

示例2,標準庫時間格式化語法
package main

import (
    "fmt"
    "gitee.com/johng/gf/g/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

根絕這個示例,也有幾個需要說明的地方:

自定義時間格式化語法與標準庫時間格式化語法并不沖突,前者使用Format方法,后者使用Layout語法進行格式化,相互獨立,互不沖突,無法混用;

標準庫的時間格式化語法自有特點,是不是感覺有點復雜;

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

import (
    "fmt"
    "gitee.com/johng/gf/g/os/gtime"
    "time"
)

func main() {
    // 去年今日
    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-d 00:00:00"))

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

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

2017-07-22
2017-07-22 11:42:36 CST
2017-07-22 03:42:36 UTC
2018-08-22 00:00:00
2018-07-22 10:42:36

該示例比較簡單,便不多贅述。

工具方法

godoc.org/github.com/johng-cn/gf/g/os/gtime

func Date() string
func Datetime() string
func Microsecond() int64
func Millisecond() int64
func Nanosecond() int64
func Second() int64
func SetInterval(t time.Duration, callback func() bool)
func SetTimeZone(zone string) error
func SetTimeout(t time.Duration, callback func())
func StrToTime(str string) (time.Time, error)
func StrToTimeFormat(str string, format string) (time.Time, error)
func StrToTimeLayout(str string, layout string) (time.Time, error)

方法比較簡單,比較常用的是以下幾個方法;

Second用于獲得當前時間戳,MillisecondMicrosecondNanosecond用于獲得當前的毫秒、微秒和納秒值;

DateDatetime用于獲得當前日期及當前日期時間;

SetTimeZone用于設置當前進程的全局時區(qū);

其他方法說明請查看接口文檔;

簡單示例:

package main

import (
    "fmt"
    "gitee.com/johng/gf/g/os/gtime"
)

func main() {
    fmt.Println("Date       :", gtime.Date())
    fmt.Println("Datetime   :", gtime.Datetime())
    fmt.Println("Second     :", gtime.Second())
    fmt.Println("Millisecond:", gtime.Millisecond())
    fmt.Println("Microsecond:", gtime.Microsecond())
    fmt.Println("Nanosecond :", gtime.Nanosecond())
}

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

Date       : 2018-07-22
Datetime   : 2018-07-22 11:52:22
Second     : 1532231542
Millisecond: 1532231542688
Microsecond: 1532231542688688
Nanosecond : 1532231542688690259

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29076.html

相關文章

  • Golang項目部署

    摘要:配置示例如下其中,為本地的應用監(jiān)聽端口。編譯程序跨平臺交叉編譯是的特點之一,可以非常方便地編譯出我們需要的目標服務器平臺的版本,而且是靜態(tài)編譯,非常方便地解決了運行依賴問題。 文章來源:https://goframe.org/deploymen... 一、獨立部署 使用GF開發(fā)的應用程序可以獨立地部署到服務器上,設置為后臺守護進程運行即可。這種模式常用在簡單的API服務項目中。 服務器...

    Tamic 評論0 收藏0
  • 前端每周清單半年盤點 JavaScript 篇

    摘要:前端每周清單專注前端領域內容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點分為新聞熱點開發(fā)教程工程實踐深度閱讀開源項目巔峰人生等欄目。背后的故事本文是對于年之間世界發(fā)生的大事件的詳細介紹,闡述了從提出到角力到流產的前世今生。 前端每周清單專注前端領域內容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點;分為新聞熱點、開發(fā)教程、工程實踐、深度閱讀、開源項目、巔峰人生等欄目。歡迎...

    Vixb 評論0 收藏0
  • Java 總結

    摘要:中的詳解必修個多線程問題總結個多線程問題總結有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升有哪些源代碼看了后讓你收獲很多,代碼思維和能力有較大的提升開源的運行原理從虛擬機工作流程看運行原理。 自己實現(xiàn)集合框架 (三): 單鏈表的實現(xiàn) 自己實現(xiàn)集合框架 (三): 單鏈表的實現(xiàn) 基于 POI 封裝 ExcelUtil 精簡的 Excel 導入導出 由于 poi 本身只是針對于 ...

    caspar 評論0 收藏0
  • 前端每周清單第 44 期: 2017 JS 調查報告、REST 接口實時化、ESM 的過去與未來

    摘要:巔峰人生年老兵思路上的轉變,遠比單純提升技術更有價值本文節(jié)選自趙成教授在極客時間開設的趙成的運維體系管理課,是其對自己十年技術生涯的回顧與總結。趙成教授來自美麗聯(lián)合集團,集團旗下兩大主力產品是蘑菇街和美麗說,目前負責管理集團的技術服務團隊。 showImg(https://segmentfault.com/img/remote/1460000012476504?w=1240&h=826...

    MASAILA 評論0 收藏0

發(fā)表評論

0條評論

Bryan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<