48位/ 6个字节长的时间戳格式是什么?

时间:2019-06-16 19:14:41

标签: timestamp

我有一个不了解的时间戳格式的文件。我无权访问创建文件的代码,而且它不是标准格式,因此我在十六进制编辑器中逐段进行了检查,并且发现了无法使用的格式的时间戳查找有关的信息。

这是一个48位数字,带有:
一年12位(从0开始)
本月(今年)为4位
当天(本月)5位
每小时(今天)5位
分钟(本小时)为6位
第二秒(此分钟)为6位
10毫秒(秒)

它是用UTC时间写的,而不是系统的时间,所以我怀疑时区写在文件附近。

例如,如果您想编写2019-06-16 19:11:22.333,它将是

          2019  -06   -16    19    :11    :22       .333
0b011111100011 0110 10000 10011 001011 010110 0101001101

aka

0b01111110 00110110 10000100 11001011 01011001 01001101

aka

0x7E 36 84 CB 59 4D

幸运的是,我已经知道大概的日期/时间,所以我可以倒退,但是我一直在尝试使用google来查找有关此格式的更多信息(或者如果我错过了任何内容),而且我空了。以前有没有人看过这个名字,我会找一个名字吗?

编辑:我现在几乎可以肯定在野外这个时间戳旁边看到的0xE0 80与它是PDT(-7h)相关

我在网上找到的关于时间戳数据格式的最佳列表是http://www.sandersonforensics.com/forum/content.php?131-A-brief-history-of-time-stamps,但可惜它没有这个列表。

1 个答案:

答案 0 :(得分:0)

这是问题标题的一种可能答案,但与问题详细信息中描述的编码方式不同。

IEC 61375-1 (电气铁路设备-火车总线-第1部分:火车通信网络),第二版2007-04定义了称为 TIMEDATE48 的数据类型:

  

一种结构化类型,以绝对数量表示   自世界标准时间(UTC)以来的秒数,00:00:00,第一   1970年1月(Unix和ANSI-C格式)。

TimeDate48 ::= RECORD
{
  seconds    SIGNED32,    -- elapsed since 1970, January 1st, 00:00
  ticks      UNSIGNED16   -- fraction of seconds (1 tick = 1/65536s)
}