我一直试图将这种二进制日期格式解码一段时间,但考虑到我之前从未做过那种事情,我遇到了一些麻烦。我知道哪些字节代表了日期,我知道每个输出应该是什么,但我仍然很难在这里使用。
Unsigned 8bit Int - Result ---------------------------------------- - YYYY-MM-DD hh:mm:ss 65 208 247 254 128 - 2014-02-01 00:00:00 65 208 247 254 143 - 2014-02-01 00:01:00 65 208 247 254 158 - 2014-02-01 00:02:00 65 208 247 254 173 - 2014-02-01 00:03:00 65 208 247 254 188 - 2014-02-01 00:04:00 65 208 247 254 203 - ... 65 208 247 254 218 65 208 247 254 233 65 208 247 254 248 65 208 247 255 7 65 208 247 255 22 65 208 247 255 37 65 208 247 255 52 65 208 247 255 67 65 208 247 255 82 65 208 247 255 97 65 208 247 255 112 65 208 247 255 127 65 208 247 255 142 65 208 247 255 157 65 208 247 255 172 65 208 247 255 187 65 208 247 255 202 65 208 247 255 217 65 208 247 255 232 65 208 247 255 247 65 208 248 0 6 65 208 248 0 21 65 208 248 0 36 65 208 248 0 51 65 208 248 0 66 65 208 248 0 81 65 208 248 0 96 65 208 248 0 111 65 208 248 0 126 65 208 248 0 141 65 208 248 0 156 65 208 248 0 171 65 208 248 0 186 65 208 248 0 201 65 208 248 0 216 65 208 248 0 231 65 208 248 0 246 65 208 248 1 5 65 208 248 1 20 65 208 248 1 35 65 208 248 1 50 65 208 248 1 65 65 208 248 1 80 65 208 248 1 95 65 208 248 1 110 65 208 248 1 125 65 208 248 1 140 65 208 248 1 155 65 208 248 1 170 65 208 248 1 185 65 208 248 1 200 65 208 248 1 215 65 208 248 1 230 65 208 248 1 245 65 208 248 2 4 65 208 248 2 19 65 208 248 2 34 65 208 248 2 49 65 208 248 2 64 65 208 248 2 79 65 208 248 2 94 65 208 248 2 109 65 208 248 2 124 65 208 248 2 139 65 208 248 2 154 65 208 248 2 169 65 208 248 2 184 65 208 248 2 199 65 208 248 2 214 65 208 248 2 229 65 208 248 2 244 65 208 248 3 3 65 208 248 3 18 65 208 248 3 33 65 208 248 3 48 65 208 248 3 63 65 208 248 3 78 65 208 248 3 93 65 208 248 3 108 65 208 248 3 123 65 208 248 3 138 65 208 248 3 153 65 208 248 3 168 65 208 248 3 183 65 208 248 3 198 65 208 248 3 213 65 208 248 3 228 65 208 248 3 243 65 208 248 4 2 65 208 248 4 17 65 208 248 4 32 65 208 248 4 47 65 208 248 4 62 65 208 248 4 77
我实际上颠倒了这些字节。它们最初是按照最不重要的顺序存储的(也就是先秒),但我想让它与输出相匹配一点,所以我颠倒了顺序。此外,总有3个尾随0(如果没有反转则为领先)。因为我知道数据以1分钟为增量存储日期,所以我省略了这些0。我假设至少有一个零表示秒。可能是另一个0表示毫秒,因为与所讨论的日期相对应的数据相隔1/2秒。然而,由于它以1分钟的增量(120个数据点)聚集,我不确定它真的很重要。我只使用000作为每分钟的停止信号。
话虽如此,这里是未触及的原始数据以及前面提到的0:
0 0 0 128 254 247 208 65 0 0 0 143 254 247 208 65 0 0 0 158 254 247 208 65 0 0 0 173 254 247 208 65 0 0 0 188 254 247 208 65 0 0 0 203 254 247 208 65 0 0 0 218 254 247 208 65 0 0 0 233 254 247 208 65 0 0 0 248 254 247 208 65 0 0 0 7 255 247 208 65 0 0 0 22 255 247 208 65 0 0 0 37 255 247 208 65 0 0 0 52 255 247 208 65 0 0 0 67 255 247 208 65 0 0 0 82 255 247 208 65 0 0 0 97 255 247 208 65 0 0 0 112 255 247 208 65 0 0 0 127 255 247 208 65 0 0 0 142 255 247 208 65 0 0 0 157 255 247 208 65 0 0 0 172 255 247 208 65 0 0 0 187 255 247 208 65 0 0 0 202 255 247 208 65 0 0 0 217 255 247 208 65 0 0 0 232 255 247 208 65 0 0 0 247 255 247 208 65 0 0 0 6 0 248 208 65 0 0 0 21 0 248 208 65 0 0 0 36 0 248 208 65 0 0 0 51 0 248 208 65 0 0 0 66 0 248 208 65 0 0 0 81 0 248 208 65 0 0 0 96 0 248 208 65 0 0 0 111 0 248 208 65 0 0 0 126 0 248 208 65 0 0 0 141 0 248 208 65 0 0 0 156 0 248 208 65 0 0 0 171 0 248 208 65 0 0 0 186 0 248 208 65 0 0 0 201 0 248 208 65 0 0 0 216 0 248 208 65 0 0 0 231 0 248 208 65 0 0 0 246 0 248 208 65 0 0 0 5 1 248 208 65 0 0 0 20 1 248 208 65 0 0 0 35 1 248 208 65 0 0 0 50 1 248 208 65 0 0 0 65 1 248 208 65 0 0 0 80 1 248 208 65 0 0 0 95 1 248 208 65 0 0 0 110 1 248 208 65 0 0 0 125 1 248 208 65 0 0 0 140 1 248 208 65 0 0 0 155 1 248 208 65 0 0 0 170 1 248 208 65 0 0 0 185 1 248 208 65 0 0 0 200 1 248 208 65 0 0 0 215 1 248 208 65 0 0 0 230 1 248 208 65 0 0 0 245 1 248 208 65 0 0 0 4 2 248 208 65 0 0 0 19 2 248 208 65 0 0 0 34 2 248 208 65 0 0 0 49 2 248 208 65 0 0 0 64 2 248 208 65 0 0 0 79 2 248 208 65 0 0 0 94 2 248 208 65 0 0 0 109 2 248 208 65 0 0 0 124 2 248 208 65 0 0 0 139 2 248 208 65 0 0 0 154 2 248 208 65 0 0 0 169 2 248 208 65 0 0 0 184 2 248 208 65 0 0 0 199 2 248 208 65 0 0 0 214 2 248 208 65 0 0 0 229 2 248 208 65 0 0 0 244 2 248 208 65 0 0 0 3 3 248 208 65 0 0 0 18 3 248 208 65 0 0 0 33 3 248 208 65 0 0 0 48 3 248 208 65 0 0 0 63 3 248 208 65 0 0 0 78 3 248 208 65 0 0 0 93 3 248 208 65 0 0 0 108 3 248 208 65 0 0 0 123 3 248 208 65 0 0 0 138 3 248 208 65 0 0 0 153 3 248 208 65 0 0 0 168 3 248 208 65 0 0 0 183 3 248 208 65 0 0 0 198 3 248 208 65 0 0 0 213 3 248 208 65 0 0 0 228 3 248 208 65 0 0 0 243 3 248 208 65 0 0 0 2 4 248 208 65 0 0 0 17 4 248 208 65 0 0 0 32 4 248 208 65 0 0 0 47 4 248 208 65 0 0 0 62 4 248 208 65 0 0 0 77 4 248 208 65
似乎每个字节都不代表自己的时间单位(例如,秒,分钟),因为那时我会期望一些一致性(即0分钟始终是相同的值)。所以我假设他们都应该被视为一个整体。肯定是“从某个日期开始的秒数”格式。我真的不知道该怎么做。
考虑到我看到一个模式,我觉得这会非常简单。我应该采取什么样的方法来解决这个问题?
答案 0 :(得分:0)
取决于时间值来自何处,它可能是Unix时间,即1970年1月1日以来的秒数。大多数平台都有库将其转换为人类可读时间,没有实际时间的编码或二进制中的日期 - 它实际上是一个计数器。
在这里阅读更多内容: