2

日付であると判断した 16 進コードを解読しています。

私はそれを決定しました:

50 C0 01 00 => 2014-05-21
52 C0 01 00 => 2014-05-23
59 C0 01 00 => 2014-05-30

00 の最後のバイトは余分なパディングのようです。MySQL が日付に使用するパッキング スキームを適用しようとしましたが、ここでは機能しないようです。

これらの日付がバイナリ/16 進コードにどのようにパックされているかについての洞察はありますか?

4

1 に答える 1

3

勝手な推測ですが、何かの役に立つかもしれません。

数値をリトル エンディアンの 32 ビット整数として解釈すると、次のようになります。

0x0001c050 = 114768

10進数で。また、数値の 1 の違いが 1 日分の違いを意味することにも注目してください。したがって、日付の1は1日を意味します。好奇心から、この 114768 を 365.25 (1 年の平均日数) で割りました。それは 314.217659 で、314 年と 79 日または 80 日です。

2014 年 5 月21 日から 314 年と 80 日をさかのぼると、1700 年 3 月 1 日になります。これがグレゴリオ暦の基本的な日付です。

したがって、この日付形式は、グレゴリオ暦からの経過日数にすぎないと思います。

于 2014-05-21T17:50:17.343 に答える