golang 获取本周 上周的时间

这篇博客详细介绍了如何利用GoLang编程语言来获取当前日期对应的本周和上周时间,对于需要处理时间范围的开发者来说非常实用。

使用GoLang获取本周上周的时间

package main

import (
	"fmt"
	"time"
)

func main() {
	var err error
	now := time.Now()
	now, err = time.Parse("2006-01-02", "2021-05-01")
	if err != nil {
		fmt.Println("err = ", err)
	}
	fmt.Println("now = ", now.Format("2006/01/02 15:04:05"))
	fmt.Println("today = ", now.Format("2006/01/02"))
	offset := int(time.Monday - now.Weekday())
	if offset > 0 {
		offset = -6
	}

	fmt.Println("offset = ", offset)
	fmt.Println("this week start = ", now.AddDate(0, 0, offset).Format("2006-01-02"))
	fmt.Println("this week end = ", now.AddDate(0, 0, offset+6).Format("2006-01-02"))

	fmt.Println("last week start = ", now.AddDate(0, 0, offset-7).Format("2006-01-02"))
	fmt.Println("last week end = ", now.AddDate(0, 0, offset-1).Format("2006-01-02"))
}

### 获取当前时间的方法 在 Golang 中,`time` 包提供了多种方法用于处理日期和时间。其中最常用的方式是调用 `time.Now()` 函数来获得当前的时间戳。 此函数返回一个表示当前本地时间的对象,该对象属于 `Time` 类型[^1]: ```go now := time.Now() fmt.Println("Current date and time:", now) ``` 上述代码片段展示了如何打印出程序运行时刻的确切日期与时间。除此之外,还可以进一步格式化输出或提取特定部分的信息,例如年份、月份等。 为了更精确地记录事件发生瞬间,在某些情况下可能还需要考虑单调时钟(monotonic clock),这有助于提高计时准确性并减少系统调用带来的误差影响。Golang 的实现中通过变量 `startNano` 来调整单调时间偏移量。 #### 单独获取秒级/纳秒级别时间 有时仅需知道自 Unix 纪元以来经过了多少秒或是更加精细到纳秒级别的数值,则可以分别采用如下两种做法之一: - 调用 `Unix()` 方法得到从 1970 年 1 月 1 日 UTC 至今所经历整数秒钟数目; - 利用 `UnixNano()` 返回包含更高精度(即纳秒)的结果。 示例代码如下所示: ```go secondsSinceEpoch := now.Unix() nanosecondsSinceEpoch := now.UnixNano() fmt.Printf("Seconds since epoch: %d\n", secondsSinceEpoch) fmt.Printf("Nanoseconds since epoch: %d\n", nanosecondsSinceEpoch) ``` 以上介绍了几种常见的取得当前时间的方法,并解释了它们的应用场景及特点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值