百科
当前位置:首页 >> 百科 >> 文章正文

golang time经常独霸编制详解

发布时间:2026-07-20 19:53:20点击:523

声明

        在golang中,经常时分转换都邑经由过程Time圭表类型做一系列转换  。独霸次要包含,编制时分戳和时分字符串 ,详解时分字符串转换成此外的经常格式 。总之全数的独霸转换都是经由过程Time圭表类型做中心转换。参考文档:https://golang.org/pkg/time/

独霸

1,编制取妥往后时分

t1 := time.Now()    // 前去的详解是时分Time圭表类型fmt.Println(t1, reflect.TypeOf(t1)) 

2 ,掉落踪掉落踪指按时分

t4 := time.Date(2019,经常 9, 30, 14, 28, 26, 23, time.Local)  // 前去时分格式Timefmt.Println(t4)

3 ,取妥往后时分戳

t1 := time.Now()t1Second := t1.Unix()  // 掉落踪掉落踪秒的独霸时分戳fmt.Println(t1Second)t1Nano := t1.UnixNano()    // 掉落踪掉落踪毫秒时分戳fmt.Println(t1Nano)

4 ,时分戳转时分time.Time

timeStamp := 1569826535t := time.Unix(int64(timeStamp),编制 0)  // time.TimestrTime := t.Format("2006-01-02 15:04:05")fmt.Println(strTime)  // 2019-09-30 14:55:35

5 ,时分字符串转时分time.Time

s := "2019年9月30日 15:10:30"  // ---> 2019-09-30 15:10:30t,详解 err := time.Parse("2006年1月2日 15:4:5", s)if err != nil { 	fmt.Println(err.Error())}result := t.Format("2006-01-02 15:04:05")fmt.Println(result)

寄看:这个中心需求寄看两点

1,时分模板必须是经常 2006年1月2日 15点4分5秒 ,非论若何表述,独霸都邑是编制这个时分。

2,在转换的时辰 ,传进的时分格式是甚么容貌,模板时分也必须写成甚么容貌 。比如 :

带转换的时分:2019-09-30 15:12:14  那么模板时分就理应是 2006-01-30 15:04:05

时分转换

        但凡转换的过程都是经由过程time.Time来做中心转换的 ,非论是时分戳格式转成时分格式 ,仍是时分字符串转换成时分格式/时分其他格式/时分戳  ,都是经由过程time.Time格式来做的直达  。

1,时分Time格式转时分戳 ,直接转换  ,因为Time圭表类型可以转换成时分的任何格式和圭表类型

t1 := time.Now()timeStamp := t1.Unix()

2 ,时分戳转时分字符串

timeStamp := 1569826535t := time.Unix(int64(timeStamp), 0)  // time.TimestrTime := t.Format("2006-01-02 15:04:05")fmt.Println(strTime)  // 2019-09-30 14:55:35

3 ,掉落踪掉落踪时分中的年代日时分秒礼拜

非论是给的时分戳仍是时分格式,都先转换成time.Time

timeStamp := 1569826535  // 2019-09-30 14:55:35t := time.Unix(int64(timeStamp), 0)  // time.Timeyear, month, day := t.Date()hour, minute, second := t.Clock()fmt.Println(year, month, day, hour, minute, second)// 一样可以屈就时分格式供给的编制// 可以掉落踪掉落踪礼拜几,还可以取妥往后是一年的若干很多若干良多若干很多若干良多若干很多若干天fmt.Println(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Weekday(), t.YearDay())

4,时分加减法

timeStamp := 1569826535             // 2019-09-30 14:55:35t := time.Unix(int64(timeStamp), 0) // time.Time // 时分年代日加减,假定是负数,怎展示减往若干很多若干良多若干很多若干良多若干很多若干t2 := t.AddDate(0, -1, 0)fmt.Println(t2.Format("2006/01/02 15:04:05")) // 第二种写法,一样的是负数展示减法t3 := t.Add(-time.Hour * 24)fmt.Println(t3.Format("2006/01/02 15:04:05"))

5 ,判按时分大年夜小

// 剖断某个时分是不是是在某个时分之前/此后/相当
,传进的参数必须是时分格式t4 := t.After(time.Now())t5 := t.Before(time.Now())t6 := t.Equal(t)// 前去的是bool值fmt.Println(t4, t5, t6)    // false true true

到此这篇关于golang time经常独霸编制详解的文章就引见到这了,更多相干golang time经常独霸编制内容请搜刮完竣下载之前的文章或延续不雅不雅不雅不雅鉴赏上面的相干文章希看大年夜师往后多多支撑完竣下载 !

相关装修文章Related Articles

热门阅读文章

最新装修文章