解码时间和日期格式
Decoding a Time and Date Format
我相机上的 Olympus 网络服务器 returns 日期我无法解码为人类可读的格式。
我有几个值可以使用。
- 17822 应该是 30.12.2014
- 17953 应该是 01.01.2015 (dd mm yyyy)
- 17954 应该是 02.01.2015
所以我假设这只是自 xxx 以来的天数,结果发现这是 1965 年 11 月 5 日,所以我猜这是错误的。
另外时间也是一个整数值。
- 38405 是 18:48
- 27032 是 13:12
- 27138 是 13:16
正确的值为 UTC+1
也许有人知道如何解码这两种格式。
它们是 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)
我相机上的 Olympus 网络服务器 returns 日期我无法解码为人类可读的格式。
我有几个值可以使用。
- 17822 应该是 30.12.2014
- 17953 应该是 01.01.2015 (dd mm yyyy)
- 17954 应该是 02.01.2015
所以我假设这只是自 xxx 以来的天数,结果发现这是 1965 年 11 月 5 日,所以我猜这是错误的。
另外时间也是一个整数值。
- 38405 是 18:48
- 27032 是 13:12
- 27138 是 13:16
正确的值为 UTC+1
也许有人知道如何解码这两种格式。
它们是 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)