Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 12-12-2024
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 198
Poder: 11
razorxxx Va por buen camino
Lo conseguí con objetos TNetHTTPClient:

Código Delphi [-]
function TPPRUEBAS.LeerFechaHoraInternet(UTC: Integer): string;
var
   UnixTicks: Int64;
   FechaHora: TDateTime;
   HttpClient: TNetHTTPClient;
   HttpResponse: IHTTPResponse;
begin
     Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now); // Formato inicial por defecto
     Try
        HttpClient := TNetHTTPClient.Create(nil);
        Try
           // Ejecutar la solicitud
           HttpResponse := HttpClient.Get('https://www2.roa.es/cgi-bin/horautc');  // Realizar la solicitud a la API del ROA
           If HttpResponse.StatusCode = 200 Then
           Begin
                UnixTicks := StrToInt64(Trim(HttpResponse.ContentAsString));  // Si la respuesta viene en formato Unix (ajusta el formato si la API devuelve algo diferente)
                FechaHora := UnixToDateTime(UnixTicks div 1000);  // Divide entre 1000 para convertir milisegundos a segundos
                FechaHora := IncHour(FechaHora, UTC);  // Adaptarlo al huso horario indicado en el parámetro UTC: 1 = UTC+1 (Península y Baleares), 0 = UTC+0 (Canarias), etc
                Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', FechaHora);  // Formatear la fecha-hora en el formato aceptado por Veri*Factu
                Consola.Lines.Add('Fecha-hora de internet sincronizada correctamente.');
           End
           Else
               Consola.Lines.Add('Error: ' + HttpResponse.StatusCode.ToString + ' ' + HttpResponse.StatusText);
        Except
              on E: Exception do
              Begin
                   // En caso de error, retorna la hora local y avisa de ello en la consola
                   Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now);
                   Consola.Lines.Add('No se pudo sincronizar la fecha-hora de internet. Se muestra la fecha-hora del equipo.');
              End;
        End;
     Finally
            If Assigned(HttpClient) Then HttpClient.Free;
     End;
end;

Acordarse de poner en el uses: System.Net.HttpClient, System.Net.URLClient, System.Net.HttpClientComponent
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TimeStamp Willo MySQL 4 22-03-2016 21:15:00
Consulta TimeStamp Jose Roman SQL 2 06-09-2012 04:03:11
TimeStamp = TimeStamp me da error Chogo Firebird e Interbase 7 16-03-2011 04:13:38
TIMESTAMP en restriccion Cañones SQL 6 28-08-2007 23:19:27
Timestamp y bde 5.2 Toni Firebird e Interbase 2 27-05-2003 09:26:33


La franja horaria es GMT +2. Ahora son las 09:53:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi