problema con hora actual

19 views
Skip to first unread message

Paola Bruccoleri

unread,
Oct 6, 2015, 11:47:51 AM10/6/15
to Lista Play Latam
Hola todos!

En Uruguay hemos tenido algunos problemillas con la hora... resulta que
desde siempre, el fin de semana pasado hubiera cambiado a horario de
verano.. pero el gobierno ya había decretado desde hace meses que no se
cambiará más la hora...
Esto ocasionó problemas en muchos sistemas, celulares, etc....
http://www.elpais.com.uy/informacion/antel-cambio-horario-celulares.html

y ahora tengo un problema con la aplicación play, que hace un control
del horario para determinar si se realiza o no una venta.
La aplicación hace los cálculos PERO con 1 hora más que la actual.. o
sea, toma la hora si se hubiera hecho el cambio horario.

la pc tiene un linux CentOs, y al ejecutar date, me devuelve la hora OK
corrí un programa java de prueba:
import java.util.*;
public class Fechas {
public static void main(String[] args) {
//Instanciamos el objeto Calendar
//en fecha obtenemos la fecha y hora del sistema
Calendar fecha = new GregorianCalendar();
//Obtenemos el valor del año, mes, día,
//hora, minuto y segundo del sistema
//usando el método get y el parámetro correspondiente
int año = fecha.get(Calendar.YEAR);
int mes = fecha.get(Calendar.MONTH);
int dia = fecha.get(Calendar.DAY_OF_MONTH);
int hora = fecha.get(Calendar.HOUR_OF_DAY);
int minuto = fecha.get(Calendar.MINUTE);
int segundo = fecha.get(Calendar.SECOND);
System.out.println("Fecha Actual: " + dia + "/" + (mes+1) + "/"
+ año);
System.out.printf("Hora Actual: %02d:%02d:%02d %n", hora,
minuto, segundo);

y me devuelve la hora correcta...

ES SOLO EL PROGRAMA en PLAY que toma la fecha mal...

¿qué puede estar sucediendo??? que esté mal el UTC de la máquina por
ejemplo??

El código de la aplicación Play que controla eso es este:

public static boolean inWorkingHours(){
boolean result = false;

String diaHabilInicio1 =
Configuracion.findById("horario.oficina.habil.desde1","8:30");
String diaHabilFin1 =
Configuracion.findById("horario.oficina.habil.hasta1","12:00");
String diaHabilInicio2 =
Configuracion.findById("horario.oficina.habil.desde2","13:30");
String diaHabilFin2 =
Configuracion.findById("horario.oficina.habil.hasta2","18:30");
String sabadoInicio1 =
Configuracion.findById("horario.oficina.sabado.desde1","8:30");
String sabadoFin1 =
Configuracion.findById("horario.oficina.sabado.hasta1","12:30");
String sabadoInicio2 =
Configuracion.findById("horario.oficina.sabado.desde2","");
String sabadoFin2 =
Configuracion.findById("horario.oficina.sabado.hasta2","");

GregorianCalendar today = new GregorianCalendar();

Date now = today.getTime();

if (today.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){

Date from1 = getTime(sabadoInicio1);
Date to1 = getTime(sabadoFin1);
Date from2 = getTime(sabadoInicio2);
Date to2 = getTime(sabadoFin2);
result = now.after(from1) && now.before(to1);
if (!result && from2 != null && to2 != null){
result = now.after(from2) && now.before(to2);
}
}else if (today.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
result = false;
}else{
Date from1 = getTime(diaHabilInicio1);
Date to1 = getTime(diaHabilFin1);
Date from2 = getTime(diaHabilInicio2);
Date to2 = getTime(diaHabilFin2);
result = now.after(from1) && now.before(to1);
if (!result && from2 != null && to2 != null){
result = now.after(from2) && now.before(to2);
}
}
return result;
}

Se agradece cualquier ayuda al respecto
muchas gracias!!
byeee

Reply all
Reply to author
Forward
0 new messages