1. 程式人生 > 其它 >golang時間和日期相關函式

golang時間和日期相關函式

//時間和日期相關函式
func main() {

	//1.獲取當前時間
	now := time.Now()
	fmt.Printf("now = %v, type = %T", now, now)

	//2.通過now獲取年月日時分秒
	fmt.Println("年= ", now.Year())
	fmt.Println("月= ", now.Month())
	fmt.Println("日= ", now.Day())
	fmt.Println("時= ", now.Hour())
	fmt.Println("分= ", now.Minute())
	fmt.Println("秒= ", now.Second())

	//格式化日期時間
	fmt.Printf("當前年月日 %d-%d-%d %d:%d:%d\n",
		now.Year(), now.Month(), now.Day(),
		now.Hour(), now.Minute(), now.Second())

	dateStr := fmt.Sprintf("當前年月日 %d-%d-%d %d:%d:%d\n",
		now.Year(), now.Month(), now.Day(),
		now.Hour(), now.Minute(), now.Second())
	fmt.Printf("dateStr=%v\n", dateStr)

	//格式化日期的第二種方式time.Format()
	fmt.Println(now.Format("2006-01-02 15:04:05"))
	fmt.Println(now.Format("2006-01-02"))
	fmt.Println(now.Format("15:04:05"))

	//需求,每隔一秒鐘列印一個數字,列印到100退出
	/*
		時間常量:
		Nanosecond = 1納秒
		Microsecond = 1000*Nanosecond微秒
		Millisecond = 1000*Microsecond毫秒
	*/
	i := 0
	for {
		i++
		fmt.Println(i)
		//休眠
		time.Sleep(time.Second)
		if i == 100 {
			break
		}
	}

	//時間戳(用於獲取隨機數字)
	//Unix和UnixNano的使用
	fmt.Printf("Unix時間戳=%v Unixnano時間戳=%v", now.Unix(), now.UnixNano())
}

  計算拼接十萬個字元所用時長

func main() {

	start := time.Now().Unix()
	timetest()
	end := time.Now().Unix()
	fmt.Println("所用時間為 ", end-start)
}
func timetest() {

	str := "hello"
	for i := 0; i < 100000; i++ {
		str = str + strconv.Itoa(i)
	}
}