Time devuelve un valor de hora, date devuelve un valor de fecha y now devuelve un valor de fecha/hora, pero todos se almacenan en un formato tipo DateTime. DateTime no es más que un numero decimal (Extended) que cuenta el número de días transcurridos desde una fecha, en este caso 30/12/1899, siendo las fracciones del mismo número fracciones de día, es decir, horas, minutos,s egundos...
Así que cuando usamos la funció Time no dará 0,5 si son las 12 del mediodía. Si interpretamos ese valor como un valor DateTime nos dirá 0 días desde el 30/1/1899 y 12 horas transcurridas, de ahí que te devuelva ese valor de fecha.
Prueba el siguiente código y verás a lo que me refiero (son 3 botones y un Label)
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=FLoatToStr(Date);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:=FLoatToStr(Time);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Label1.Caption:=FLoatToStr(Now);
end;
Saludos.