UTC para hora local aumenta 1 segundo

  • Autor Autor raulsuances
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
R

raulsuances

Beta
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Buenas,
Es normal que al convertir las horas de formato UTC a formato local te añada 1 segundo?
Tengo guardada una hora en la base de datos en formato UTC, al pasarlo a local en mi aplicación me añade un segundo, porque puede ser?
Un saludo
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
podrias poner el codigo? es dificil asi a ciegas.

Le avisaste al dateTime que esta en formato UTC cuando lo extraes antes de convertir a ToLocalTime()?
 
Pon el código, por allí vi uno en php en el foro stackoverflow

PHP:
 utcDate = DateTime.SpecifyKind(utcDate, DateTimeKind.Utc); var localTime = utcDate.ToLocalTime();
 
Última edição:
Veamos, voy a intentar explicarlo bien a ver si me podéis ayudar.

En mi aplicación tengo una especie de correo electrónico pero para procuradores.
En el cual tengo estados de mensaje que son, por ejemplo: cuando el mensaje se ha creado el estado del mensaje es creado, cuando el mensaje se ha leído por el destinatario el estado del mensaje es leído, cuando el mensaje se ha respondido el estado de mensaje será respondido...

Con ese estado de mensaje guardo la fecha, por ejemplo: cuando creo el mensaje guardo la fecha en la que he creado el mensaje.

Con esto que he explicado quiero decir que en la aplicación tengo algo tal que así:
estadosMensaje1.webp

Fecha - Estado del mensaje

El problema es que a la hora de guardarlo en la base de datos me lo guarda así.
estadosMensaje2.webp

F_ENVIO es la fecha del estado Creado
F_FIRMADO es la fecha del estado Firmado
F_SELLADO es la fecha del estado Sellado

En la base de datos me lo guarda en formato UTC (Estoy en España, -2 horas de la hora UTC).
Pero o a la hora de guardar en Base de datos me quita un segundo, o a la hora de mostrar en mi pagina me añade un segundo.

No entiendo el porque...

Para mostrar las fechas de UTC a formato local tengo el siguiente método.
Inserir CODE, HTML ou PHP:
private static TimeZoneInfo timeZoneSpain = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
private static TimeZoneInfo timeZoneUTC = TimeZoneInfo.FindSystemTimeZoneById("UTC");

public static DateTime DateUtcToNow(DateTime date)
        {
            ELogger.ELogger.LogMethodStart();

            ELogger.ELogger.LogDebug("Hora UTC: " + date);
            DateTime d = TimeZoneInfo.ConvertTime(date, timeZoneUTC, timeZoneSpain);
            d = Convert.ToDateTime(d, estfi);

            ELogger.ELogger.LogMethodEnd();
            return d;
        }

Muchas gracias por vuestra ayuda [MENTION=20896]freddy[/MENTION] y [MENTION=175236]drupalsito[/MENTION]
 
Veamos, voy a intentar explicarlo bien a ver si me podéis ayudar.

En mi aplicación tengo una especie de correo electrónico pero para procuradores.
En el cual tengo estados de mensaje que son, por ejemplo: cuando el mensaje se ha creado el estado del mensaje es creado, cuando el mensaje se ha leído por el destinatario el estado del mensaje es leído, cuando el mensaje se ha respondido el estado de mensaje será respondido...

Con ese estado de mensaje guardo la fecha, por ejemplo: cuando creo el mensaje guardo la fecha en la que he creado el mensaje.

Con esto que he explicado quiero decir que en la aplicación tengo algo tal que así:
Ver o anexo 100243

Fecha - Estado del mensaje

El problema es que a la hora de guardarlo en la base de datos me lo guarda así.
Ver o anexo 100244

F_ENVIO es la fecha del estado Creado
F_FIRMADO es la fecha del estado Firmado
F_SELLADO es la fecha del estado Sellado

En la base de datos me lo guarda en formato UTC (Estoy en España, -2 horas de la hora UTC).
Pero o a la hora de guardar en Base de datos me quita un segundo, o a la hora de mostrar en mi pagina me añade un segundo.

No entiendo el porque...

Para mostrar las fechas de UTC a formato local tengo el siguiente método.
Inserir CODE, HTML ou PHP:
private static TimeZoneInfo timeZoneSpain = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
private static TimeZoneInfo timeZoneUTC = TimeZoneInfo.FindSystemTimeZoneById("UTC");

public static DateTime DateUtcToNow(DateTime date)
        {
            ELogger.ELogger.LogMethodStart();

            ELogger.ELogger.LogDebug("Hora UTC: " + date);
            DateTime d = TimeZoneInfo.ConvertTime(date, timeZoneUTC, timeZoneSpain);
            d = Convert.ToDateTime(d, estfi);

            ELogger.ELogger.LogMethodEnd();
            return d;
        }

Muchas gracias por vuestra ayuda [MENTION=20896]freddy[/MENTION] y [MENTION=175236]drupalsito[/MENTION]

supongo que los segundos es porque no se guardan al mismo tiempo, es como que espera su turno de un segundo para guardarse y así se refleja, ahora lo del utc ya quedó?
 
Buenas [MENTION=175236]drupalsito[/MENTION]
Te escribo para decirte que no conseguí solucionar el problema, pero que lo arregle haciendo un poco de trampas. Quitándote 1 segundo 🙂
Un saludo
 
Voltar
Topo