golang获取时间戳
时间: 2023-07-07 09:46:14 浏览: 112
在 Golang 中获取时间戳可以使用时间包中的 `Unix` 和 `UnixNano` 函数。
1. Unix 时间戳
`Unix` 函数返回的是从 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)到当前时间的秒数。
示例代码:
```go
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
timestamp := now.Unix()
fmt.Println(timestamp)
}
```
2. UnixNano 时间戳
`UnixNano` 函数返回的是从 Unix 纪元到当前时间的纳秒数。
示例代码:
```go
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
timestamp := now.UnixNano()
fmt.Println(timestamp)
}
```
注意:`UnixNano` 函数返回的时间戳位数较多,可以使用 `int64` 类型来存储。
相关问题
golang 获取下周一零点时间戳
要获取下周一零点的时间戳,可以使用Golang的时间包(time package)来实现。以下是一个实现的例子:
```go
package main
import (
"fmt"
"time"
)
func getNextMondayTimestamp() int64 {
// 获取当前日期
now := time.Now()
// 计算当前日期距离下周一的天数差,这里的Weekday的值是0-6,分别表示周日到周六
daysUntilNextMonday := (1 - int(now.Weekday()) + 7) % 7
// 构造下周一的日期
nextMonday := now.AddDate(0, 0, daysUntilNextMonday)
// 获取下周一零点的时间戳
nextMondayMidnight := time.Date(nextMonday.Year(), nextMonday.Month(), nextMonday.Day(), 0, 0, 0, 0, nextMonday.Location())
return nextMondayMidnight.Unix()
}
func main() {
nextMondayTimestamp := getNextMondayTimestamp()
fmt.Println(nextMondayTimestamp)
}
```
首先,我们通过`time.Now()`函数获取当前时间。接下来,使用`Weekday()`方法获取当前日期的星期几,返回的是一个`time.Weekday`类型的值。通过计算当前日期距离下周一的天数差,我们可以得到下周一的日期。使用`AddDate()`方法可以在当前日期的基础上增加天数。最后,通过`time.Date()`方法构建下周一零点的时间,并通过调用`Unix()`方法获取该时间的时间戳。输出结果即为下周一零点的时间戳。
注意,以上代码中假设星期一是每周的第一天,如果你的系统设置了不同的星期开始日期,请相应地调整代码以适应。
golang 获取当天的0点时间
有多种方式可以获取当天的0点时间,以下是其中两种方式:
1. 使用 time 包的 Truncate 方法
```go
now := time.Now()
today := now.Truncate(24 * time.Hour)
```
这里的 Truncate 方法会将时间戳按照指定的时间段进行截断,例如 24 * time.Hour 就表示以天为单位,截断出当天的日期。
2. 使用 time 包的 Date 方法
```go
now := time.Now()
year, month, day := now.Date()
today := time.Date(year, month, day, 0, 0, 0, 0, now.Location())
```
这里的 Date 方法会将当前时间戳转换为年、月、日三个部分,然后再用 time.Date 方法重新构造出当天的0点时间。需要注意的是,这里的时区信息使用了当前时间戳的时区信息。
阅读全文