将存储为十六进制的值转换为日期
Convert value stored as hex to date
我将数据以十六进制格式存储在文件中,并且我知道相应日期应该是什么的一些示例。
但是我无法确定如何计算它。
83 61 94 04/08/2015
83 61 75 16/07/2015
83 61 97 07/08/2015
83 0 135 01/01/1999
83 51 64 08/10/2012
我不知道日期最初是如何编码的,并且由于数据文件已旧且不再受任何人支持,因此无法找出。
关于如何将十六进制转换为相应日期的任何建议??
2015-08-04 - **94** days = 2015-05-02
2015-07-16 - **75** days = 2015-05-02
2015-08-07 - **97** days = 2015-05-02
所以第三个字节,在它的 "hexadecimal form" 中必须与 "number of days" 有关,我猜 2015-05-02 应该编码为 83 61 00。但是,您应该提供更多不同年份的其他日期示例,以便理解其他字节。
编辑:您的新数据可以说明以下内容
83 51 64 --> 2012-10-08 - ** 64 ** 天 = 2012-08-05 (83 51 00)
83 01 35 --> 1999-01-01 - 83 天 = 1998-11-27 (83 01 00)
61 - 51 = 10,2012-08-05 和 2015-05-02 (83 61 00) 之间有 1000 天,也就是说,第二个 "byte" 也给我们 "days" 但有 x100 乘数。
在第二种情况(1998-11-27)上试试。从该日期到 2015-05-02 (83 61 00) 共有 600 万天。 61-01 = 60 * 100.
我相信你的公式应该是这样的:
日期 "hex" (AA BB CC)
日期 = (AA * 1000 + BB * 100 + CC) 天 + Date_0
我让你自己计算 Date_0 因为你可以使用你提供的任何日期示例。
请注意,我假设 AA 乘以 1000,因为您没有提供任何更改第一个字节的示例。
我将数据以十六进制格式存储在文件中,并且我知道相应日期应该是什么的一些示例。 但是我无法确定如何计算它。
83 61 94 04/08/2015
83 61 75 16/07/2015
83 61 97 07/08/2015
83 0 135 01/01/1999
83 51 64 08/10/2012
我不知道日期最初是如何编码的,并且由于数据文件已旧且不再受任何人支持,因此无法找出。
关于如何将十六进制转换为相应日期的任何建议??
2015-08-04 - **94** days = 2015-05-02
2015-07-16 - **75** days = 2015-05-02
2015-08-07 - **97** days = 2015-05-02
所以第三个字节,在它的 "hexadecimal form" 中必须与 "number of days" 有关,我猜 2015-05-02 应该编码为 83 61 00。但是,您应该提供更多不同年份的其他日期示例,以便理解其他字节。
编辑:您的新数据可以说明以下内容 83 51 64 --> 2012-10-08 - ** 64 ** 天 = 2012-08-05 (83 51 00) 83 01 35 --> 1999-01-01 - 83 天 = 1998-11-27 (83 01 00)
61 - 51 = 10,2012-08-05 和 2015-05-02 (83 61 00) 之间有 1000 天,也就是说,第二个 "byte" 也给我们 "days" 但有 x100 乘数。
在第二种情况(1998-11-27)上试试。从该日期到 2015-05-02 (83 61 00) 共有 600 万天。 61-01 = 60 * 100.
我相信你的公式应该是这样的: 日期 "hex" (AA BB CC)
日期 = (AA * 1000 + BB * 100 + CC) 天 + Date_0
我让你自己计算 Date_0 因为你可以使用你提供的任何日期示例。
请注意,我假设 AA 乘以 1000,因为您没有提供任何更改第一个字节的示例。