Open techiall opened 5 years ago
最近从 redis 数据库中获得一些数据,数据非主要部分已做处理。数据如下:
redis
[{ "Path": "MTBA", "Timestamp": "636948697749377910", "Current": "27.384489640391596" }, { "Path": "temperature", "Timestamp": "636948697738137200", "Current": "27.899760796418597" }]
有点让我好奇的是 Timestamp 字段的数据值,咋一看,不是时间戳,也有点不太确定是不是,之前写过一篇关于时间戳的文章 https://github.com/techial1042/Blog/issues/52
Timestamp
难道是纳米级的时间戳么?把当前时间转换成纳米级时间戳,发现对应不上;利用 JS 计算一下长度,排除了是时间戳,压根没对应。
> "636948697749377910".length < 18
上谷歌搜了一下关键词 十八位 时间戳,2333,找到了线索,原来是和 C# 的 DateTime 有关。
十八位 时间戳
DateTime
DateTime值类型表示日期和时间的值范围从 00:00:00 (午夜),1 月 1 日 0001 午夜 11:59:59 止 (基督纪元) 通过 11:59:59 PM,到公元 9999 年 12 月 31 日 (C.E.)在公历。
那怎么把 DateTime.Ticks 转成 时间戳 或者 当前时区的时间呢?后来发现 JS 就可以做到了。一句就可以搞定。
DateTime.Ticks
> Date(636948697749377910) < "Sat Jun 01 2019 00:11:38 GMT+0800 (China Standard Time)"
在找这个问题的过程中还发现了一个有趣的问题,日本立法年号改变了(平成变成了令和)。那岂不是会影响日历的程序。23333
最近从
redis
数据库中获得一些数据,数据非主要部分已做处理。数据如下:有点让我好奇的是
Timestamp
字段的数据值,咋一看,不是时间戳,也有点不太确定是不是,之前写过一篇关于时间戳的文章 https://github.com/techial1042/Blog/issues/52难道是纳米级的时间戳么?把当前时间转换成纳米级时间戳,发现对应不上;利用 JS 计算一下长度,排除了是时间戳,压根没对应。
上谷歌搜了一下关键词
十八位 时间戳
,2333,找到了线索,原来是和 C# 的DateTime
有关。DateTime
值类型表示日期和时间的值范围从 00:00:00 (午夜),1 月 1 日 0001 午夜 11:59:59 止 (基督纪元) 通过 11:59:59 PM,到公元 9999 年 12 月 31 日 (C.E.)在公历。那怎么把
DateTime.Ticks
转成 时间戳 或者 当前时区的时间呢?后来发现 JS 就可以做到了。一句就可以搞定。参考链接