Hola,despues de leer lo anterior, he adaptado la funcion que tenia para obtener la hora de internet os la paso aqui por si a alguien le interesa, devuelve la hora del Real Instituto y Observatorio de la Armada (ROA)
Hay que instalar el paquete Nugget de criptografia BouncyCastle,
Aqui adaptado para devolver datetime , tened encuenta que devuelve utc
Código:
/// <summary>
/// Devuelve la hora actual de internet.
/// </summary>
/// <returns>Hora actual formateada.</returns>
public static DateTime leeFechaHoraInternet()
{
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);//esta la uso yo porque tengo bouncy instalado
//desde el paquete nuget BouncyCastle
return fechora;
}
}
catch(Exception Exc)
{
return DateTime.Now;
}
return DateTime.Now;
}