angular2时间戳转换:参数2的秒值结果与毫秒展开
输入参数2做angular2时间戳转换,结果是Unix秒值2、毫秒值2000、ISO时间1970-01-01T00:00:02.000Z、UTC时间1970-01-01 00:00:02。这个结果说明参数2被当作秒级时间戳处理,而不是毫秒值。
在线工具时间戳转换
参数2的四个输出字段怎么读
把2传进去,工具先把它当作Unix时间戳的秒数,于是unix字段原样保留为2。毫秒字段是秒数乘以1000,得到2000。ISO字段把2000毫秒换算成UTC时刻,写作1970-01-01T00:00:02.000Z,末尾的Z表示零时区。UTC字段则是去掉T和毫秒的展示形式:1970-01-01 00:00:02。四个字段其实在说同一件事,只是单位与格式不同:秒、毫秒、带时区标记的ISO串、便于阅读的UTC串。
从参数2逐步推到可读时间
第一步确认输入2是秒级,不是毫秒级;若把它误当毫秒,结果会落在1970-01-01T00:00:00.002Z,与证据给出的秒级解释不一致。第二步做单位换算:2秒×1000=2000毫秒。第三步把2000毫秒放到Unix纪元1970-01-01T00:00:00Z之上累加,得到1970-01-01T00:00:02.000Z。第四步按UTC格式去掉毫秒与T,写成1970-01-01 00:00:02。整个过程没有时区偏移参与,因为ISO与UTC字段都按零时区输出。
把2和1、3、662、3602放在一起看
参数1得到1970-01-01T00:00:01.000Z,参数3得到1970-01-01T00:00:03.000Z,参数2正好夹在中间,说明秒值每加1,ISO串的秒位就加1。参数662对应1970-01-01T00:11:02.000Z,因为662秒等于11分2秒;参数3602对应1970-01-01T01:00:02.000Z,因为3602秒等于1小时2秒。这几个相邻值放在一起,能直观看出秒值如何进位到分和时。
负参数与零附近的边界对照
证据里还有负值:-658对应1969-12-31T23:49:02.000Z,-3598对应1969-12-31T23:00:02.000Z。它们都落在1970年之前,说明秒级时间戳允许负数,表示纪元之前的时刻。参数0在参考里出现,对应纪元起点1970-01-01T00:00:00Z。把2和这些值对照,可以确认工具对秒值的处理是线性的:正数往后走,负数往前走,零停在起点。
在Angular项目里什么时候会碰到参数2这类值
后端接口有时返回秒级时间戳,前端拿到2这样的数值,直接丢给new Date(2)会得到1970-01-01T00:00:00.002Z,和预期差了一千倍。这时需要先判断单位:如果数值在十位以内,多半是秒;如果到了十三位,才是毫秒。判断清楚后再做angular2时间戳转换,或者用时间戳转换核对秒值与毫秒值的对应关系。对2这类小数值,乘以1000再交给日期对象,就能得到1970-01-01T00:00:02.000Z。
总结
参数2的angular2时间戳转换结果是Unix秒值2、毫秒值2000、ISO时间1970-01-01T00:00:02.000Z、UTC时间1970-01-01 00:00:02;它说明小数值应按秒级处理,乘以1000后再交给日期对象。
相关文章
- jq13位时间戳转换成日期:参数结果核对
说明参数13按Unix秒转换后的UTC日期,并区分数值13与13位毫秒时间戳。
- jq12位时间戳转换成日期:12 对应哪一刻?
参数 12 按 Unix 时间戳换算,对应 1970-01-01 00:00:12(UTC),毫秒数为 12000。本文说明结果含义、换算步骤与相邻参数对照。
- jdk8将时间戳转换成instant:8秒的转换结果
在JDK8中把时间戳8转换为Instant,结果是1970-01-01T00:00:08Z,对应UTC时间00:00:08,毫秒值8000。
- java时间戳转换日期格式14位:先分清秒与毫秒
从14位时间戳的位数困惑讲起,用实例说明秒与毫秒的差别,并给出Java格式化日期与排查错误的做法。
- java时间戳转换成时间6:从参数6看懂秒级换算
以参数6为例,讲清Java时间戳换算成时间的思路:秒与毫秒的区别、UTC与本地时区、边界值与常见报错排查。
常见问题
Q1参数2转换后为什么是1970年而不是别的年份?
因为2被当作Unix纪元之后的第2秒,纪元起点是1970-01-01T00:00:00Z,加2秒就是1970-01-01T00:00:02.000Z。
Q2参数2的毫秒值2000是怎么来的?
秒值2乘以1000得到2000毫秒,证据里毫秒字段正是2000,ISO串末尾也写作.000。
Q3参数2和参数3的结果差在哪里?
参数2对应1970-01-01T00:00:02.000Z,参数3对应1970-01-01T00:00:03.000Z,只差ISO串秒位上的1秒。
Q4负参数-658的结果和参数2有什么可比性?
-658落在1969-12-31T23:49:02.000Z,在纪元之前;参数2落在纪元之后2秒,两者方向相反,但都按秒值线性换算。