1

我正在使用我值得信赖的旧Delphi 5并努力解决以下问题。

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

规范有以下描述:

格式LONGDATETIME,即自 1904 年 1 月 1 日午夜 12:00 以来的秒数。64 位整数

我正在创建一个单词数组来读取此结构,其中包含以下内容:

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

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

我知道换词问题。

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

任何人都可以帮助/解释我如何从这个十六进制转储中获得高于日期/时间的信息吗?

4

1 回答 1

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;
于 2012-11-14T12:53:26.583 回答