最近工作遇到了这个问题,之前反复整改,自己不够重视,这次终于吃了一次大亏。
timestamp
时间戳的定义:从1970年1月1日0时0分0秒(UTC时间,及0时区)起至现在的总秒数。
只能一直存在的疑问是,时区问题,其实这个时间戳的概念是根本不存在时区问题的。全球各地的时间戳都是一样的。也就是说,从1970年1月1日0时0分0秒(UTC时间,及0时区)开始,全球各地同时开始计数,所以这个数字不管到哪里都是一样。
UTC时间
这个就跟时区有关了。又称为协调世界时,和0时区的时间一致。
东八区
这个就是北京时间了。
JS中关于时间的一些转换
JS中一般都要用Date对象:
1 | new Date(); |
这个在windows系统上,得到的时间是本机设定的时区时间。大家一般都是东八区。
得到时间戳:
1 | new Date().getTime(); |
如果已经有了时间戳,可以这样得到对应的UTC时间:
1 | new Date(xxxxxx).toISOString(); |
这样得到的时间格式是这样的:
1 | "2019-01-09T16:37:34.662Z" |
题外话:ES查询时,如果传入一个时间戳,他会根据你ES机器的时区进行转换(如果你数据存储的时候用的是utc时间),MDZZ。