📜  在 Golang 中使用本地和其他时区中的时间戳获取当前日期和时间(1)

📅  最后修改于: 2023-12-03 15:23:08.972000             🧑  作者: Mango

在 Golang 中使用本地和其他时区中的时间戳获取当前日期和时间

Golang 自带了操作时间的标准库 time,可以方便地获取当前日期和时间。本文将介绍如何在 Golang 中使用本地和其他时区中的时间戳获取当前日期和时间。

获取本地时间戳

获取本地时间戳非常简单,可以使用 time.Now() 函数获取当前时间,然后调用 Unix() 方法获取时间戳,如下所示:

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	timestamp := now.Unix()
	fmt.Println(timestamp)
}

输出结果类似于:

1587314628
获取指定时区的时间戳

如果要获取其他时区的时间戳,可以使用 time.LoadLocation() 函数加载时区,然后使用 time.Now() 函数获取指定时区的时间,最后调用 Unix() 方法获取时间戳,如下所示:

package main

import (
	"fmt"
	"time"
)

func main() {
	location, err := time.LoadLocation("America/New_York")
	if err != nil {
		panic(err)
	}
	now := time.Now().In(location)
	timestamp := now.Unix()
	fmt.Println(timestamp)
}

输出结果类似于:

1587300224
获取日期和时间

如果要获取日期和时间,可以使用 time.Now() 函数获取当前时间,然后使用 Format() 方法格式化为指定的日期和时间格式,如下所示:

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now()
	year, month, day := now.Date()
	hour, minute, second := now.Clock()
	dateStr := fmt.Sprintf("%d-%02d-%02d", year, month, day)
	timeStr := fmt.Sprintf("%02d:%02d:%02d", hour, minute, second)
	fmt.Println(dateStr)
	fmt.Println(timeStr)
}

输出结果类似于:

2020-04-19
15:10:33
获取指定时区的日期和时间

如果要获取其他时区的日期和时间,可以使用 time.LoadLocation() 函数加载时区,然后使用 time.Now() 函数获取指定时区的时间,最后使用 Format() 方法格式化为指定的日期和时间格式,如下所示:

package main

import (
	"fmt"
	"time"
)

func main() {
	location, err := time.LoadLocation("America/New_York")
	if err != nil {
		panic(err)
	}
	now := time.Now().In(location)
	year, month, day := now.Date()
	hour, minute, second := now.Clock()
	dateStr := fmt.Sprintf("%d-%02d-%02d", year, month, day)
	timeStr := fmt.Sprintf("%02d:%02d:%02d", hour, minute, second)
	fmt.Println(dateStr)
	fmt.Println(timeStr)
}

输出结果类似于:

2020-04-19
15:10:33

以上就是在 Golang 中使用本地和其他时区中的时间戳获取当前日期和时间的方法。