JSON - Retorno de campo data
Estou acessando um webservice que foi desenvolvido em C# que retorna uma string no formato json.
Nesta string tem um campo data que vem no seguinte formato:
/Date(1373252400000)/
Como eu converto esse campo para um tDateTime???
Nesta string tem um campo data que vem no seguinte formato:
/Date(1373252400000)/
Como eu converto esse campo para um tDateTime???
Alvaro Maia
Curtidas 0
Respostas
Alvaro Maia
09/07/2013
Encontrei na web a seguinte função que aparentemente está resolvendo meu problema:
function JavaToDelphiDateTime(const dt: int64): TDateTime;
var
t: TSystemTime;
begin
DateTimeToSystemTime(25569 + (dt / 86400000), t);
SystemTimeToTzSpecificLocalTime(nil, t, t);
Result := SystemTimeToDateTime(t);
end;
A chamada fica assim:
procedure converteData(dataStr: string);
var
data: TDateTime;
begin
Delete(dataStr,Length(dataStr)-1,2);
Delete(dataStr,1,6);
data := JavaToDelphiDateTime(StrToInt64(dataStr));
...
Não entendi direito o uso da constantes 25569 na função JavaToDelphiDateTime.
function JavaToDelphiDateTime(const dt: int64): TDateTime;
var
t: TSystemTime;
begin
DateTimeToSystemTime(25569 + (dt / 86400000), t);
SystemTimeToTzSpecificLocalTime(nil, t, t);
Result := SystemTimeToDateTime(t);
end;
A chamada fica assim:
procedure converteData(dataStr: string);
var
data: TDateTime;
begin
Delete(dataStr,Length(dataStr)-1,2);
Delete(dataStr,1,6);
data := JavaToDelphiDateTime(StrToInt64(dataStr));
...
Não entendi direito o uso da constantes 25569 na função JavaToDelphiDateTime.
GOSTEI 0