Cita:
Empezado por razorxxx
Hola bmfranky, ¿podrías publicar un ejemplo en Delphi de cómo obtener la hora del servidor ROA de la AEAT? Esto ya me dijeron que es importante, ya que en ocasiones a los ordenadores se les desconfigura la fecha-hora o algún listillo la cambia a mano.
|
Hola, lo siento pero yo uso c#, so sabria realizar la conversion correctamente, le pongo mi codigo.
Código:
/// <summary>
/// Devuelve la hora actual formateada con uso horario.
/// </summary>
/// <returns>Hora actual formateada.</returns>
public static string leeFechaHoraInternet()
{
string retorno = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK");
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
try
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://www2.roa.es/cgi-bin/horautc");//https://worldtimeapi.org/api/ip");
webRequest.Method = "GET";
HttpWebResponse respuesta = (HttpWebResponse) webRequest.GetResponse();
if(respuesta.StatusCode == HttpStatusCode.OK)
{
Stream strmRespuesta = respuesta.GetResponseStream();
StreamReader leeRespuesta = new StreamReader(strmRespuesta);
string jsonRespuesta = leeRespuesta.ReadToEnd();
long ticks = long.Parse(jsonRespuesta.Replace("\\n", ""));
var fechora = Org.BouncyCastle.Utilities.Date.DateTimeUtilities.UnixMsToDateTime(ticks).ToLocalTime();//esta la uso yo porque tengo bouncy instalado
//desde el paquete nuget BouncyCastle
retorno = fechora.ToString("yyyy-MM-dd'T'HH:mm:ssK");
}
}
catch(Exception Exc)
{
retorno = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK");
}
return retorno;
}
Puede preguntar a @novatico
Cita:
Empezado por novatico
Es que yo no tomo la fecha hora del sistema, sino que la tomo de internet.
Incluso he encontrado la forma de tomar el "unixtime" del ROA (Real Observatorio de la Armada) que es el dato oficial que tomas todos los organismos estatales, incluida la AEAT.
Solo hay que tener en cuenta, además, el desfase por la zona horaria.
Aunque de momento no lo he implementado y lo tomo de "http://date.jsontest.com" al que tambien hay que añadir el desfase de zona.
Es que tengo clientes "muy amigos" de cambiar la fecha y hora del sistema.
|
El decia tener un control creado para ello.