Fórum JSON - Retorno de campo data #448198
09/07/2013
0
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
Curtir tópico
+ 0
Responder
Posts
09/07/2013
Alvaro Maia
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)