我正在使用我信赖的旧 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
有人可以帮助/解释我如何从这个十六进制转储中获得上述日期/时间吗?
答案 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;