Delphi 5读取日期为64位整数

时间:2012-11-14 12:22:42

标签: delphi-5

我正在使用我信赖的旧 Delphi 5 ,并且遇到以下问题。

我试图通过直接从字体文件中读取来解释Truetype / opentype字体创建日期。

spec有以下说明:

格式 LONGDATETIME ,这是自1月1日午夜12点以来的秒数, 1904. 64位整数

我正在使用以下内容创建一个单词数组来读取此结构:

longDateTime = array[0..3] of Word;

我可以正确阅读并正确解释字体文件中 head 表中的其他数据,但不能正确解释时间值。

我知道交换的单词问题。

一种字体的日期 06/08/1990 ,时间 14:54:50 文件中的十六进制转储为00 00 00 00 A2 E3 27 2A

有人可以帮助/解释我如何从这个十六进制转储中获得上述日期/时间吗?

1 个答案:

答案 0 :(得分:2)

有一点时间差异

Var
 C:Cardinal=$00000000A2E3272A;

procedure TForm3.Button1Click(Sender: TObject);
var
 d:TDateTime;
begin
  d := Encodedate(1904,1,1) + c / 24/60/60 ;
  Showmessage(DateTimeToStr(d));
end;