Go_时间处理(time包)

时间获取

package main

import (
    "fmt"
    "time"
)

func main()  {
    timeObj :=time.Now()  //返回的是个对象
    fmt.Println(timeObj) //2021-03-25 22:14:57.3459874 +0800 CST m=+0.003004101

    // 过去年-月-日 时-分-秒的格式
    year := timeObj.Year()
    fmt.Println(year)  //2021

    month := timeObj.Month()
    fmt.Println(month) // March

    day := timeObj.Day()
    fmt.Println(day) //25

    hour := timeObj.Hour()
    fmt.Println(hour) //22

    minute := timeObj.Minute()
    fmt.Println(minute) //18

    second := timeObj.Second()
    fmt.Println(second) //4

    fmt.Printf("%d-%d-%d %d:%d:%d
", year, month, day, hour, minute, second) //2021-3-25 22:21:37

    fmt.Printf("%d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second) //2021-03-25 22:21:37

    //注意:%02d 中的 2 表示宽度,如果整数不够 2 列就补上 0

}

自定义格式

go中没有像PHP "Y-m-d"这样格式全部使用数字代表

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
}

时间戳&日期格式转换

package main

import (
    "fmt"
    "time"
)

func main() {
    // 1.获取当前时间戳 (毫秒)
    timeObj := time.Now()
    sjc := timeObj.Unix()
    fmt.Println(sjc) // 1616759478

    //2.时间戳转换为日期格式 注意int64转换
    timeObj2 := time.Unix(int64(sjc), 0)
    dateStr := timeObj2.Format("2006-01-02 15:04:05")
    fmt.Println(dateStr) //    2021-03-26 19:51:18

    //3.日期格式转为时间戳
    str := "2021-03-26 19:51:18"
    tmp := "2006-01-02 15:04:05" // 需要和被转换的日期字符串格式一致
    timeObj3, _ := time.ParseInLocation(tmp, str, time.Local)
    fmt.Println(timeObj3.Unix()) // 1616759478

}
 
注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层——注重细节——关注底层
原文地址:https://www.cnblogs.com/PJG20/p/14579823.html