Hemos notado que los reportes Jasper, por ejemplo el acta de examen, la funcion new java.util.Date() nos da tres horas de diferencia con la hora actual, el sistema tiene bien la hora. Antes nos pasaba que la hora del sistema estaba mal y lo que pasaba era que teniamos mal en el postgres.conf la configuración, eso lo arreglamos y ahora sale bien, pero ahora vemos que los reportes jasper tienen diferencia horaria. De donde saca ese dato?
Buenas Luciana podrías probar lo siguiente pero ahora pasandole el locale
new SimpleDateFormat("dd-MM-yyyy hh:mm:ss", new Locale("Ar")).format(new Date())
Sino este código.
new SimpleDateFormat("dd-MM-yyyy hh:mm:ss", new Locale("Ar")).format(new Date())
Si te da error proba con comillas simples.
Si eso no te funciona nada de lo anterior proba de ver cuál es el timezone que está trayendo el jasper imprimiendo en un campo esto:
Hola Luciana,
te comento en principio la diferencia que existe en cuánto a de dónde se toman los datos de fecha y zonas horarias en cada caso.
En cuando a la fecha del sistema Guaraní que mencionás en primer instancia, la misma se obtiene de la base, por lo que dependerá, como bien decís, de cómo tengan configurado el postgresql.conf.
En el caso de los Reportes en Jasper, la situación es diferente si utilizás la previsualización de los mismos en el iReports o si lo estás imprimiendo desde el sistema. Si probaste las expresiones de los anteriores mensajes en el jrxml y usaste el preview en el iReports, lo que veas ahí dependerá de cómo tengas configurado el parámetro REPORT_TIME_ZONE en esta aplicación. Para modificarlo podés entrar a “Herramientas/Opciones/Compilation and execution” y ahí podés configurar Report Locale con el valor español (Argentina) y el Report Time Zone con el valor America/Argentina/Buenos_Aires (Hora de Argentina). Esta configuración servirá sólo para la previsualización de los reportes utilizando el iReports.
Cuando los reportes se imprimen desde Guaraní, esa fecha de java que se muestra en la impresión dependerá de la fecha y zona horaria establecida en el servidor donde se encuentre corriendo Jasper (donde hayas levantado el javabridge). Eso podés comprobarlo y modificarlo, como te mencionaba Jose, con el comando date. Por el resultado que arrojás no estoy segura de que esté bien configurado el timezone, por lo que te pido que intentes establecerlo en la consola del servidor donde levantaron el javabridge, con el siguiente comando:
Como vos lo decis en la configuracion del ireport cuando lo corro localmente sale perfecto.
Ahora lo que me llamaba la antención en el servidor es eso que vos decis, cuando corro el date me sale bien la fecha y en el guarani, en el encabezado está bien tambien, ahora el jasper lo toma con tres horas mas, por eso preguntaba de donde sacaba ese dato.
Las otras opciones que me dabas José, salen igual con las tres horas de diferencia.
Hola Luciana,
ejecutaste el comando para setear el timezone en el servidor donde tenés levantado el javabridge que te pedimos en el mensaje anterior? Nos podés adjuntar el resultado para verificar que se haya modificado correctamente?
Hola Luciana googleando en varios foros encontre este comando para ver como te lo trae luego de ello.
1° mata el proceso que está corriendo el javabridge ( java -jar …)
2° ahora corre el javabridge con este comando