帮助打包日期格式

逆向工程 编码 二进制格式
2021-06-19 03:06:26

我遇到了来自遗留数据库应用程序的日期格式。

我无权访问生成它的代码,只有与某些假日消息相对应的示例。

我正在尝试将这些转换为标准日期。我希望这是一个标准的,也许是晦涩的或过时的日期格式。

转储似乎是大端字节序和 7 位清洁

粗略地说,它似乎始于 Unix 纪元(1970 年 1 月 1 日)00 00 00。根据类似的问题,所有数据都是十六进制的。

似乎有两个数字从未出现在最右侧的列中,但这可能是我的数据集,因为其中一个确实出现在中间列中。

  • 2001 年 7 月 4 日,03 4E 7B <-- 修正错字
  • 2001 年 12 月 24 日,03 55 76
  • 2002 年 7 月 4 日,03 5D 52
  • 2002 年 12 月 24 日,03 64 4 天
  • 2003 年 7 月 4 日,03 6C 2A
  • 2003 年 12 月 24 日,03 73 25
  • 2004 年 12 月 24 日,04 02 02
  • 2005 年 7 月 4 日 04 09 5F
  • 2005 年 12 月 24 日,04 10 5A
  • 2006 年 12 月 24 日 04 1F 31
  • 2007 年 7 月 4 日,04 27 0E
  • 2007 年 12 月 24 日 04 2E 09
  • 2008 年 12 月 24 日,04 3C 66
  • 2009 年 12 月 24 日 04 4B 3D
  • 2010 年 7 月 4 日,04 53 1A
  • 2010 年 12 月 24 日,04 5A 15
  • 2011 年 12 月 24 日,04 68 6 天
  • 2012 年 12 月 24 日,04 77 4A
  • 2013 年 12 月 24 日 05 06 21
  • 2014 年 7 月 4 日,05 0D 7E <- 修正错字
  • 2014 年 7 月 5 日 05 月 03 日
  • 2014 年 7 月 6 日 05 0E 08
  • 2014 年 7 月 7 日 05 0E 0E
  • 2014 年 7 月 8 日 05 月 13 日
  • 2014 年 7 月 9 日 05 月 18 日
  • 2014 年 12 月 24 日,05 14 79

更新以添加另一个日期序列:

Feb 19 1996  03 00 03
Mar 15 1996  03 01 03
Apr  9 1996  03 02 04
May  3 1996  03 03 00
May 20 1996  03 04 01
Sep 05 1996  03 08 04 
Sep 30 1996  03 09 04 
Oct 24 1996  03 0a 00 
Nov 10 1996  03 0b 01
Jan  1 1997  03 0d 02
Feb  1 1997  03 0e 03
Feb 26 1997  03 0f 04
Apr 16 1997  03 11 00
May 11 1997  03 12 01
Jun  5 1997  03 13 01
Jun 30 1997  03 14 02 
Jul 25 1997  03 15 03 
Aug 19 1997  03 16 04 
Nov  1 1997  03 19 01
Nov 26 1997  03 1a 02 
Jan 15 1998  03 1c 03
Feb  9 1998  03 1d 04 
Mar 30 1998  03 1f 00
..
Jan 11 2004  03 74 02
Feb  5 2004  03 75 02 
Mar  1 2004  03 76 03
Mar 26 2004  03 77 04 
Apr 19 2004  03 78 00
May 14 2004  03 79 00
Jun  8 2004  03 7a 01 
Jul  3 2004  03 7b 02
Jul 28 2004  03 7c 03 
Aug 22 2004  03 7d 03
Sep 16 2004  03 7e 04
Oct 10 2004  03 7f 00 
Nov  4 2004  04 00 00 
Nov 29 2004  04 01 01 
Dec 24 2004  04 02 02   
Jan 18 2005  04 03 03
1个回答

在将 HEX 转换为 0 和 1 后,试图寻找一种模式,我认为它不是编码日期,而是从基准日期开始的天数的变化。我发现了两个异常 - (Jul 4 2001, 03 5E 7B and Dec 24 2001, 03 55 76) 和 (Jul 4 2014, 05 0E 7E and Jul 5 2014, 05 0E 03) 其中较晚的日期具有较小的十六进制值这让我想知道是否有更多的日期,以便我们可以尝试理解这种模式。