【go】时间日期相关函数/错误处理

1.获取当前时间

	now := time.Now()
	fmt.Printf("now=%v\nnow type is %T", now, now)

2.time.Time是一个类型,专门用于表示时间
3.获取日期信息

	now := time.Now()
	// 通过now获取年月日时分秒
	fmt.Printf("year=%v\n", now.Year())
	fmt.Printf("month=%v\n", now.Month())
	fmt.Printf("月=%v\n", int(now.Month()))
	fmt.Printf("day=%v\n", now.Day())
	fmt.Printf("hour=%v\n", now.Hour())
	fmt.Printf("minute=%v\n", now.Minute())
	fmt.Printf("second=%v\n", now.Second())

4.格式化日期和时间

笨比法

	now := time.Now()
	fmt.Printf("now=%v\nnow type is %T", now, now)

	//format
	fmt.Printf("date is %d-%d-%d\n", now.Year(),
	now.Month(), now.Day());
	dateStr := fmt.Sprintf("date is %d-%d-%d\n", now.Year(),
	now.Month(), now.Day());
	fmt.Printf("dateStr is %v\n", dateStr)

用Format方法
"2006/01/02 15:04:05"各个数字是固定的,必须这个时间!

	now := time.Now()
	fmt.Printf("now=%v\nnow type is %T\n", now, now)

	//format
	fmt.Printf(now.Format("2006/01/02 15:04:05"))
	fmt.Println()
	fmt.Printf(now.Format("2006/01/02"))
	fmt.Println()
	fmt.Printf(now.Format("2006-1-2"))

5.时间的常量const
只能用乘法,不能用除法
不能*小数
6.休眠Sleep

	// 每隔0.1s打印数字 打印到10
	for i :=0; i < 10; i++ {
		fmt.Println(i + 1)
		time.Sleep(time.Millisecond * 100)
	}

7.unix时间戳 和 unixnano时间戳

	now := time.Now()
	fmt.Printf("unix time=%v\nunixnano time=%v\n",
	now.Unix(), now.UnixNano())

8.golang的内置函数(build in)
len求长度

9.new用于分配内存,住主要用于分配值类型,如int、float、struct
返回的是一个指针

	n1 := 100
	fmt.Printf("type=%T\nval=%v\naddr=%v\n\n",
	n1, n1, &n1)
	n2 := new(int)
	fmt.Printf("type=%T\nval=%v\naddr=%v", n2, n2, &n2)

n2指向的值为0
result
10.make用于分配内存,主要用于分配引用类型

11.go的错误处理方式:defer、panic、recover
在defer中通过recover捕获异常

func test() {
	// defer+recover捕获处理异常
	defer func() {
		err := recover()
		// if err := recover(); err != nil {
		if err != nil {
			fmt.Println("err=", err)
		}
	}()
	n1 := 10
	n2 := 0
	res := n1 / n2
	fmt.Println(res)
}

func main() {
	test()
	fmt.Println("code after panic")
}

12.go支持自定义错误,使用errors.New和panic内置函数
errors.New会返回一个error类型的值

panic接收一个interface类型的值(即任何值)作为参数。可以接收error类型的变量。输出错误信息,并退出程序。

func readConf(name string) (err error) {
	if name == "config.ini" {
		return nil
	}else{
		return errors.New("读取文件错误")
	}
}

func test02() {
	err := readConf("config2.ini")
	if err != nil {
		panic(err)
	}
	fmt.Println("test02() code after panic")
}

func main() {
	test02()
	fmt.Println("main() code after panic")
}

13.数字转字母

	c := 'a'
	for i := 0; i < 26; i++ {
		fmt.Printf("%c", byte(int(c) + i))
	}
	fmt.Println()
	c = 'Z'
	for i := 0; i < 26; i++ {
		fmt.Printf("%c", byte(int(c) - i))
	}

result

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值