golang日期格式化之奥秘

go 提供的这个 layout 对算法的实现非常科学高效,而且很规律。下面我们详细分解下。 所有的值表示都唯一对应一个时间部分。并且涵盖了很多格式组合。

月份 1,01,Jan,January
日  2,02,_2
时  3,03,15,PM,pm,AM,am
分  4,04
秒  5,05
年  06,2006
时区 -07,-0700,Z0700,Z07:00,-07:00,MST
周几 Mon,Monday

格式化参考日期必须是2006-01-02 15:04:05(这里的15可以换成3或03,代表12小时制)这个时间是固定的,换做其他的日期就失效了。
2006是go语言在google内部谋划的日子,后面依次是1、2、15(3)、4、5的顺序表示,你可以这么记。

//格式化参考日期必须是2006-01-02 15:04:05(这里的15可以换成3或03,代表12小时制)这个时间是固定的,换做其他的日期就失效了。
// 2006是go语言在google内部谋划的日子,后面依次是1、2、15(3)、4、5的顺序表示,你可以这么记。
func main() {
	//格式化日期都会使用Format函数:
	now := time.Now().Format("2006-01-02 15:04:05")
	hour := time.Now().Format("15")
	minute := time.Now().Format("04")
	second := time.Now().Format("05")
	fmt.Printf("现在是%s点%s分%s秒\n", hour, minute, second) //现在是10点45分04秒
	fmt.Println(now)                                   //2022-05-05 10:45:04

	//骚操作:自动替换当前的月、小时等
	word1 := time.Now().Format("现在是1月份了")
	word2 := time.Now().Format("现在是Jan月份了")
	word3 := time.Now().Format("现在是15点了")
	fmt.Println(word1) //现在是5月份了
	fmt.Println(word2) //现在是May月份了
	fmt.Println(word3) //现在是10点了

	//操作时间
	later_hour := time.Now().Add(time.Hour).Format("2006-01-02 15:04:05") // 当前时间加1小时后的时间并格式化
	later_minute := time.Now().Add(time.Minute * 10)                      // 当前时间加10分钟后的时间
	fmt.Printf("当前时间加1小时后的时间:%s\n", later_hour)
	fmt.Println(later_minute)

}

你可能感兴趣的:(golang,golang)