zonas sirven que planisferio para mundo meridiano mapamundi mapa los husos horarios horarias hora hay greenwich cuántos java unit-testing timezone

java - sirven - planisferio husos horarios



Realice pruebas unitarias con fechas que pasan en todas las zonas horarias y con/sin DST (2)

De manera predeterminada, un nuevo SimpleDateFormat usará la zona horaria predeterminada del sistema. Si desea una zona horaria específica, debe llamar a setTimeZone en ella:

private final static SimpleDateFormat DATE_FORMAT = createFormat(); private static SimpleDateFormat createFormat() { // Make sure there are no locale-specific nasties, either... SimpleDateFormat ret = new SimpleDateFormat("yyyy.MM.dd''T''HH:mm.ss:SSSZZ", Locale.US); ret.setTimeZone(TimeZone.getTimeZone("Etc/UTC"); }

Para su segunda prueba, querrá cambiarla a:

new DateTime(0L, DateTimeZone.UTC);

Tenga en cuenta que generalmente no debería usar una variable estática SimpleDateFormat , ya que no es segura para subprocesos. (Mientras que la implementación Joda Time DateTimeFormatter es thread-safe.)

¿Cómo hago que esta prueba de unidad pase en todas las zonas horarias independientemente de si el horario de verano está activo o no?

import static org.junit.Assert.*; import java.text.SimpleDateFormat; import java.util.Date; import org.joda.time.DateTime; import org.junit.Test; public class TimeZoneTest { private final static SimpleDateFormat DATE_FORMAT = new SimpleDateFormat( "yyyy.MM.dd''T''HH:mm.ss:SSSZZ" ); @Test public void testUtilDateMillis() throws Exception { assertEquals( "1970.01.01T00:00.00:000+0000", DATE_FORMAT.format( new Date( 0L ) ) ); } @Test public void testDateTimeMillis() throws Exception { assertEquals( "1970-01-01T00:00:00.000+00:00", new DateTime( 0L ).toString() ); } }


O puede comparar la fecha y poner

@Ignore("Timezone issues") @Test

En tu unidad de prueba