es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo diferentes fechas y horas localmente y de forma remota

Estoy utilizando ZonedDateTime para convertir la marca de tiempo de GMT a la marca de tiempo de America/Phoenix.

Aquí está mi implementación:

public static ZonedDateTime convertGMTTimestampToLocalTime(Timestamp gmtTime, String timeZone) throws Exception
{

    ZonedDateTime atZone = Instant
            .ofEpochMilli(                       
                    gmtTime.getTime()
            )                                   
            .atZone(                            
                    ZoneId.of( timeZone )
            );                                  


    return atZone;
}

Esto da el resultado correcto cuando lo pruebo localmente, pero cuando lo pruebo de forma remota (en un servidor con un contenedor docker), da un resultado incorrecto.

Si realizo una transacción a las 6-Jan-2021 8:00PM (America/Phoenix), debería mostrar 6-Jan-2021, pero muestra 7-Jan-2021. Mi servidor está en MST.

¿Qué me estoy perdiendo? ¿No se supone que el servidor debe mostrar la fecha de acuerdo con la zona horaria especificada? Cualquier ayuda sería apreciada. Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema puede estar relacionado con la configuración de la zona horaria del servidor. Al ejecutar el código en una máquina local, se utiliza la zona horaria de la máquina para convertir la marca de tiempo GMT a la hora de America/Phoenix. Sin embargo, al ejecutar el código en un servidor remoto con contenedor Docker, es posible que la zona horaria del servidor no esté configurada correctamente, lo que podría provocar una conversión incorrecta.

    Una solución podría ser asegurarse de que la zona horaria del servidor esté configurada correctamente en la zona horaria deseada (en este caso, America/Phoenix) antes de ejecutar el código. Esto se puede hacer típicamente a través de la configuración del sistema operativo del servidor o de las variables de entorno. Además, puede ser útil registrar la zona horaria actual que se está utilizando en la conversión para depurar el problema más a fondo.

Comments are closed.