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)
}