if (0 > jtime) throw new IllegalArgumentException("Negative Java time: " + jtime); final GregorianCalendar cal = getThreadLocalCalendar(); cal.setTimeInMillis(roundUp(jtime) ? jtime + 1999 : jtime); long dtime = cal.get(Calendar.YEAR) - 1980;
else if (MAX_DOS_TIME < dtime) dtime = MAX_DOS_TIME; final int time = (int) dtime; final GregorianCalendar cal = getThreadLocalCalendar(); cal.set(Calendar.ERA, GregorianCalendar.AD); cal.set(Calendar.YEAR, 1980 + ((time >> 25) & 0x7f));
@Before public void setUp() { instance = getInstance(); GregorianCalendar calendar = instance.getThreadLocalCalendar(); calendar.set(Calendar.ERA, GregorianCalendar.AD); calendar.set(Calendar.MILLISECOND, 0); calendar.set(1980, Calendar.JANUARY, 1, 0, 0, 0); minJavaTime = calendar.getTimeInMillis(); calendar.set(2107, Calendar.DECEMBER, 31, 23, 59, 58); // 58 seconds!!! maxJavaTime = calendar.getTimeInMillis(); }
@Test public final void testGetThreadLocalCalendar() throws Exception { final GregorianCalendar ref = instance.getThreadLocalCalendar(); ConcurrencyUtils.runConcurrent(2, new TaskFactory() { @Override public Callable<?> newTask(int threadNum) { return new Callable<Void>() { @Override public Void call() { assertThat(instance.getThreadLocalCalendar(), is(not(sameInstance(ref)))); return null; } }; } }).join(); assertThat(instance.getThreadLocalCalendar(), is(sameInstance(ref))); }