解码时间和日期格式

时间:2015-01-01 12:37:30

标签: date datetime

我相机上的Olympus网络服务器将我无法解码的日期返回到人类可读的格式。

我有几个值可以使用。

  • 17822应该是30.12.2014
  • 17953应该是01.01.2015(dd mm yyyy)
  • 17954应该是02.01.2015

所以我认为这只是自xxx以来的天数,事实证明这是05.11.1965,所以我猜这是错误的。

此外,时间也是一个整数值。

  • 38405是18:48
  • 27032是13:12
  • 27138是13:16

正确的值是UTC + 1

也许有人知道如何解码这两种格式。

1 个答案:

答案 0 :(得分:4)

它们是DOS时间戳

dos时间戳是一种位域格式,日期和时间的部分编码到数字中的相邻位,这里有一些工作示例。

number  hex     binary
17822 0x459E = 0010 0101 1001 1110
               YYYY YYYM MMMD DDDD                  

Y=001 0010 = 34 ( add 1980 to get 2014) 
M=1100     = 12
D=1 1110   = 30

17953 0x4621 = 0010 0110 0010 0001
Y=001 0011   = 35 (2015)
M=0001       = 1
D=0 0001     = 1

17954  0x4622 = 0010 0110 0010 0010
Y=001 0011   = 35 (2015) 
M=0001       = 1
D=0 0010     = 2

和时间相似

38405 = 0x9605 = 1001 0110 0000 0101
                 HHHH HMMM MMMS SSSS
H= 1 0010 = 18
M=11 0000 = 48
S= 0 0101 = 5 (double it to get 10)