GO 獲取時間的日期函數、時間戳函數


1、打印當前日期(單獨取年,月,日,時,分,秒)
package main

import (
"fmt"
"time"
)

func main() {

timeObj := time.Now()
fmt.Println(timeObj) //2020-04-26 17:32:25.9639049 +0800 CST m=+0.004000301

// 2020-04-26 17:32:25
year := timeObj.Year()
month := timeObj.Month()
day := timeObj.Day()
hour := timeObj.Hour()
minute := timeObj.Minute()
second := timeObj.Second()
// fmt.Printf("%d-%d-%d %d:%d:%d", year, month, day, hour, minute, second) //2020-4-26 17:35:07

fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", year, month, day, ho  ur, minute, second) //2020-04-26 17:36:04

//注意:%02d 中的 2 表示寬度,如果整數不夠 2 列就補上 0
}

引用數據庫中時間數據

month = time.Unix(dynamic.UpdateTime/1000, 0).Month().String()
day = time.Unix(dynamic.UpdateTime/1000, 0).Day()
year = time.Unix(dynamic.UpdateTime/1000, 0).Year()
2、打印當前日期(直接獲取)
package main

import (
"fmt"
"time"
)
/*
時間類型有一個自帶的方法Format進行格式化,
需要注意的是Go語言中格式化時間模板不是常見的Y-m-d H:M:S
而是使用Go的誕生時間2006年1月2號15點04分(記憶口訣為2006 1 2 3 4)


2006 年
01 月
02 日
03 時 12小時制 寫成:15 表示 24小時制
04 分
05 秒

*/
func main() {
// timeObj := time.Now()
// var str = timeObj.Format("2006-01-02 03:04:05")
// fmt.Println(str) //2020-04-26 05:44:24

//12小時制
// timeObj := time.Now()
// var str = timeObj.Format("2006/01/02 03:04:05")
// fmt.Println(str) //2020/04/26 05:44:47

// 24小時制
timeObj := time.Now()
var str = timeObj.Format("2006/01/02 15:04:05")
fmt.Println(str) // 2020/04/26 17:48:53
}
 

 3. 獲取時間戳

package main

import (
	"fmt"
	"time"
)

/*
時間戳是自 1970 年 1 月 1 日(08:00:00GMT)至當前時間的總毫秒數。它也被稱為 Unix 時 間戳(UnixTimestamp)。
*/
func main() {

	timeObj := time.Now()

	unixtime := timeObj.Unix()      //獲取當前的時間戳 (秒)
	fmt.Println("當前時間戳:", unixtime) //當前時間戳: 1587894706

	unixNatime := timeObj.UnixNano()    //納秒時間戳
	fmt.Println("當前納秒時間戳:", unixNatime) //當前時間戳:  1587894791217129300

}
4.時間戳轉換成日期字符串
package main

import (
	"fmt"
	"time"
)

//時間戳轉換成日期字符串
func main() {
	// unixTime: 1587888473

	unixTime := 1587894706
	timeObj := time.Unix(int64(unixTime), 0)
	fmt.Println(timeObj)
	var str = timeObj.Format("2006-01-02 15:04:05")
	fmt.Println(str) //2020-04-26 17:51:46

}

5.日期間隔  

package main

import (
	"fmt"
	"time"
)

//日期字符串轉換成時間戳
func main() {

	/*
		1、time包中定義的時間間隔類型的常量如下:
			const (
			    Nanosecond  Duration = 1
			    Microsecond          = 1000 * Nanosecond
			    Millisecond          = 1000 * Microsecond
			    Second               = 1000 * Millisecond
			    Minute               = 60 * Second
			    Hour                 = 60 * Minute
			)
	*/
	// fmt.Println(time.Millisecond) //1毫秒
	// fmt.Println(time.Second)      //1秒

	/*
		2、時間操作函數
	*/

	var timeObj = time.Now()
	fmt.Println(timeObj)
	timeObj = timeObj.Add(time.Hour)
	fmt.Println(timeObj)

	/*
		2020-04-26 18:15:05.4612997 +0800 CST m=+0.005000201
		2020-04-26 19:15:05.4612997 +0800 CST m=+3600.005000201
	*/

}

 6.定時器

package main

import (
    "fmt"
    "time"
)

/*
    golang定時器
*/

func main() {

    // // time.Now()
    // ticker := time.NewTicker(time.Second)
    // // ticker.C
    // for t := range ticker.C {
    //     fmt.Println(t)
    // }

    // time.Now()
    // ticker := time.NewTicker(time.Second)
    // n := 5
    // for t := range ticker.C {
    //     n--
    //     fmt.Println(t)
    //     if n == 0 {
    //         ticker.Stop() //終止這個定時器繼續執行
    //         break
    //     }

    // }

    //休眠方法
    // fmt.Println("aaa")
    // time.Sleep(time.Second)
    // fmt.Println("aaa2")
    // time.Sleep(time.Second)
    // fmt.Println("aaa3")
    // time.Sleep(time.Second * 5)
    // fmt.Println("aaa4")

    for {
        time.Sleep(time.Second)
        fmt.Println("我在定時執行任務")
    }
}

 7.時間戳和日期相互轉換

	//輸出完整時間
	fmt.Println(time.Now()) //2021-04-28 16:08:56.138526 +0800 CST m=+0.020943201
	//輸出秒級時間戳
	fmt.Println(time.Now().Unix()) // 1619597336
	//時間戳轉換成時間字符串
	shijian :=time.Unix(time.Now().Unix(),0).Format("2006-01-02 15:04:05")
	fmt.Println(shijian) //2021-04-28 16:10:48
	//時間字符串轉換成時間戳
	str := "2021-03-19 15:04:05"
	std,_  :=time.Parse("2006-01-02 15:04:05", str)
	fmt.Println(std) //2021-03-19 15:04:05 +0000 UTC
	fmt.Println(std.Unix()) //1616166245

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM