hago lo siguiente:Java Calendario regresa diferentes fechas
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Europe/Berlin"));
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_MONTH, 9);
c.set(Calendar.MONTH, 3);
c.set(Calendar.YEAR, 2011);
c.set(Calendar.HOUR_OF_DAY, 10);
c.set(Calendar.MINUTE, 20);
int week = c.get(Calendar.WEEK_OF_YEAR)
en mi máquina local es mi zona horaria Europe/Berlin. En mi servidor es UTC. La ejecución de este código en la máquina local devuelve semana = 14. La ejecución de este código en mi servidor devuelve la semana = 15.
Estoy fuera de las ideas - ¿alguien puede explicar que a mí? Esto me causa un gran problema :-(
Gracias por cualquier punteros.
Cheers, Cristiano
¿está seguro de que está recibiendo resultados diferentes? Desde el fragmento de código no importaría en absoluto en qué zona horaria se encuentra porque de todos modos está configurando manualmente el día y la hora del día. Este código siempre devolvería 15 en mi mente. – BVSmallman
Sí, estoy extremadamente seguro: he copiado esto de una prueba de Junit. Se ejecuta localmente, pero falla en mi servidor. :-( – Christian
Creo que ha estropeado su copia o su experimento de alguna manera. Si ejecuto este código ([copia completa] (http://pastie.org/2972306)) en mi máquina, que está configurada en GMT/BST (BST a partir de esa fecha), recibo semana = 14. Además, no veo por qué importar en Berlín vs. UTC sería importante en este caso, ya sea a las 10:20 a.m. (Berlín) u 8:20 am (UTC - ya que Berlín estaría en horario de verano en abril, es +2 en lugar de +1), de cualquier manera todavía es la semana 14. –