golang 笔记11 时间

golang 笔记11 时间

  1. 时间格式化
import (
	"fmt"
	"testing"
	"time"
)

const DEFAULT_TIME_FORMAT = "2006-01-02 15:04:05"
const YYYY_MM_DD = "2006-01-02"

func printTime(t time.Time) {
	fmt.Println(t.Format(DEFAULT_TIME_FORMAT))
	year, week := t.ISOWeek()
	fmt.Printf("%4d年 第%02d周 %s\n", year, week, t.Weekday())
}

func TestTimeFormat(te *testing.T) {
	var t time.Time = time.Now()
	fmt.Println(t.String())
	fmt.Println(t.Format(time.RFC822))
	fmt.Printf("%4d-%02d-%02d %02d:%02d:%02d\n", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())
	printTime(t)
}
  1. 获取时间
func TestGetTime(te *testing.T) {
	t, err := time.Parse(DEFAULT_TIME_FORMAT, "2021-05-01 10:14:25")
	if err != nil {
		fmt.Printf("An error occurred\n")
		return // exit the function on error
	}
	printTime(t)
}
func GetTime(timeString string) time.Time {
	t, err := time.Parse(YYYY_MM_DD, timeString)
	if err != nil {
		panic("时间格式有误")
	}
	return t
}

func TestGetTime2(te *testing.T) {
	location, err := time.LoadLocation("UTC")
	if err != nil {
		return
	}
	t := time.Date(2021, 10, 1, 9, 15, 0, 0, location)
	printTime(t)
}
  1. 时间计算
func TestTimeAdd(te *testing.T) {
	t := time.Now()
	var one_week time.Duration = 60 * 60 * 24 * 7 * 1e9 // must be in nanosec (1s = 1000000000 ns)
	one_week_after := t.Add(one_week)
	printTime(one_week_after)
}
  1. 线程休眠
// 休眠
func TestTimeSleep(t *testing.T) {
	printTime(time.Now())
	var second5 time.Duration = 5 * 1e9 // 5s
	time.Sleep(second5)
	printTime(time.Now())
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值