Golang学习日志 ━━ 当前时间time.Now()和自定义时间time.Parse()的差值now.Sub(parse)注意点

思路

没什么特别的地方,主要是time.Now()获得的时间是cst时间(若北京时区即东八区时间),而time.Parse()得到的时间是utc时间,二者直接比较会有时差(不同时区所在地使用time.Now()则时差不同),所以要先将time.Parse()获得的时间转换成东八区(或转换time.Now())然后再进行比较,如下示例:

	//获取并显示当前时间
	fmt.Println("now()时间:", time.Now(), "显示的是cst时间")
	//解析并显示自定义时间
	pt, _ := time.Parse("2006-01-02 15:04:05", "2020-02-06 21:58:59")
	fmt.Println("parse()时间:", pt, "显示的是utc时间")
	//设定时区
	loc, _ := time.LoadLocation("Asia/Shanghai")
	//根据时区解析并显示自定义时间
	pts, _ := time.ParseInLocation("2006-01-02 15:04:05", "2020-02-06 21:58:59", loc)
	fmt.Println("parse()时间:", pts, "显示的是cst时间")
	//计算差值
	fmt.Println("两个时间的差值:", pt.Sub(pts))

协调世界时(UTC)

UTC(Coordinated Universal Time),协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。

协调世界时,即零时区时间,即格林威治平太阳时间,是指格林威治所在地的标准时间,也是表示地球自转速率的一种形式,UTC基于国际原子时间,是世界上不同国家用来调节时钟和时间的主要时间标准。

格林威治标准时间(GMT)

地区:英国 皇家格林尼治天文台
时区:UTC/GMT 0 (零时区)
北京时差:现在格林威治时间比北京时间晚8小时

格林威治位于泰晤士河南岸,与北岸城镇通隧道和公路。1423年格洛斯特公爵亨天雷围建了格林尼治公园,在河畔山丘建了镃望塔,后又建造了格林威治皇家天文台。

中央标准时间(CST)

Central Standard Time (USA) UT-6:00(美国cst:UTC减6个小时)
Central Standard Time (Australia) UT+9:30(澳大利亚cst:UTC加9个半小时)
China Standard Time UT+8:00(中国cst:UTC加8个小时)
Cuba Standard Time UT-4:00 (古巴cst:UTC减4个小时)

如:当UTC时间为0点时,中国CST时间为8点,因为零时区和中国北京时区相差8个时区。

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