golang 最全的时间及时间戳的获取转换

时间:2025-03-02 08:21:38

最灵活的一种方式:

 获取当前时间的年月日时分秒的拼接(月日等补足到两位),类似于其他语言的 data format,可以按照自己的想法进行拼接,得到一个类型YYMMDD的格式,更加的灵活

now := ()

nowSecond := (()) + ("%02d", ()) + ("%02d", ()) + ("%02d", ()) + ("%02d", ()) + ("%02d", ())

结果输出

20221209103544

以下是golang基本的一些获取时间方式

        一、获取时间

获取当前时间

package main
 
import (
        "fmt"
        "time"
)
 
func main() {
   currentTime := ()                  //当前时间
   currentYear := ().Year()        //当前年
   currentMonth := ().Month()       //当前月
   currentDay := ().Day()         //当前日
   currentHour := ().Hour()        //当前小时小时
   currentMinute := ().Minute()      //当前分钟
   currentSecond := ().Second()      //当前秒
   currentNSecond := ().Nanosecond()  //当前纳秒
    
   //打印结果
   ("当前时间是:", currentTime)
   ("当前年:", currentYear)
   ("当前月:", currentMonth)
   ("当前日:", currentDay)
   ("当前小时:", currentHour)
   ("当前分钟:", currentMinute)
   ("当前秒:", currentSecond)
   ("当前纳秒:", currentNSecond)

结果输出

当前时间是: 2022-04-22 16:42:44.1160954 +0800 CST m=+0.004795301
当前年: 2022
当前月: April
当前日: 22
当前小时: 16
当前分钟: 42
当前秒: 44
当前纳秒: 150022700

获取之前/之后的时间

获取1分钟之前的时间戳

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    currentTime := ()
    m, _ := ("-1m")
    result := (m)
    (result)
}

说明

  • 将传入的"-1m"转换为“持续时间”类型(),输出为-0h1m0s
  • 之后Add() 可对其和时间进行计算

结果输出

2022-04-22 16:43:20.9844622 +0800 CST m=-59.994691699

获取一小时之前的时间

方法同上,持续时间可如下转换:(“-1h”)

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    currentTime := ()
    m, _ := ("-1h")
    result := (m)
    (result)
}

结果输出

2022-04-22 15:47:01.9977133 +0800 CST m=-3599.992986699

 获取1小时后的时间

方法同上,持续时间可如下转换:(“1h”)

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    currentTime := ()
    m, _ := ("1h")
    result := (m)
    (result)
}

结果输出

2022-04-22 17:50:58.3395738 +0800 CST m=+3600.004424801

二、获时间戳

获取当前时间戳

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    ("时间戳(秒):%v;\n", ().Unix())
    ("时间戳(纳秒):%v;\n",().UnixNano())
    ("时间戳(毫秒):%v;\n",().UnixNano() / 1e6)
    ("时间戳(纳秒转换为秒):%v;\n",().UnixNano() / 1e9)
}

输出结果

时间戳(秒):1650617834;
时间戳(纳秒):1650617834110539400;
时间戳(毫秒):1650617834110;
时间戳(纳秒转换为秒):1650617834;

 时间转时间戳

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    timeStamp := (2022, 5, 20, 13, 14, 0, 0, ).Unix()
    ("时间转时间戳:",timeStamp)
}

结果输出

时间转时间戳: 1653023640

时间戳转时间

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    timeStr := (1650617834, 0)
    (timeStr)
}

结果输出

2022-04-22 16:57:14 +0800 CST

按模板格式化输出

注意:模板格式里的时间不能随意更改

package main
 
import (
    "fmt"
    "time"
)
 
func main() {
    timeLayout := "2006-01-02 15:04:05"
    timeStr := (1653023640, 0).Format(timeLayout)
    (timeStr)
}

结果输出

2022-05-20 13:14:00