public static void main(String[] args) throws ParseException { OffsetDateTime start = OffsetDateTime.parse("2014-06-10T10:45:00+03:00"); // Takes the time stamp and converts to an OffsetDateTime object OffsetDateTime end = OffsetDateTime.parse("2015-06-10T10:50:00+03:00"); Instant startInst = start.toInstant(); // converts it to an Instant Class object Instant endInst = end.toInstant(); Duration dur = Duration.between(startInst, endInst); // calculates the duration between the two instances System.out.println("The Period between the two instants is:\n"); System.out.println(dur.toMillis() + " Millisecs"); // prints the milliseconds }
public void test_convertToInstant_furtherAfterLeap() { OffsetDateTime odt = OffsetDateTime.of(1980, 1, 1, 0, 0, 1, 0, ZoneOffset.UTC); Instant instant = odt.toInstant(); UtcInstant utc = UtcInstant.ofModifiedJulianDay(MJD_1980, NANOS_PER_SEC); assertEquals(rules.convertToInstant(utc), instant); assertEquals(rules.convertToUtc(instant), utc); }
// ----------------------------------------------------------------------- // convertToUtc(Instant)/convertToInstant(UtcInstant) // ----------------------------------------------------------------------- public void test_convertToInstant_justBeforeLeap() { OffsetDateTime odt = OffsetDateTime.of(1979, 12, 31, 23, 43, 21, 0, ZoneOffset.UTC); Instant instant = odt.toInstant(); UtcInstant utc = UtcInstant.ofModifiedJulianDay(MJD_1980 - 1, (SECS_PER_DAY + 1 - 1000) * NANOS_PER_SEC); assertEquals(rules.convertToInstant(utc), instant); assertEquals(rules.convertToUtc(instant), utc); }
public void test_convertToInstant_slsMicros() { for (int i = 1; i < 1000; i++) { long utcNanos = (SECS_PER_DAY + 1 - 1000) * NANOS_PER_SEC + i * 1000; long startSls = (86401 - 1000) * NANOS_PER_SEC; long slsNanos = (utcNanos - (utcNanos - startSls) / 1000); OffsetDateTime odt = OffsetDateTime.of( 1979, 12, 31, 23, 43, 21, (int) (slsNanos % NANOS_PER_SEC), ZoneOffset.UTC); Instant instant = odt.toInstant(); UtcInstant utc = UtcInstant.ofModifiedJulianDay( MJD_1980 - 1, (SECS_PER_DAY + 1 - 1000) * NANOS_PER_SEC + i * 1000); assertEquals(rules.convertToInstant(utc), instant); assertEquals(rules.convertToUtc(instant), utc); } }
public void test_convertToInstant_slsNanos() { for (int i = 1; i < 5005; i++) { long utcNanos = (SECS_PER_DAY + 1 - 1000) * NANOS_PER_SEC + i; long startSls = (86401 - 1000) * NANOS_PER_SEC; long slsNanos = (utcNanos - (utcNanos - startSls) / 1000); OffsetDateTime odt = OffsetDateTime.of( 1979, 12, 31, 23, 43, 21, (int) (slsNanos % NANOS_PER_SEC), ZoneOffset.UTC); Instant instant = odt.toInstant(); UtcInstant utc = UtcInstant.ofModifiedJulianDay(MJD_1980 - 1, utcNanos); assertEquals(rules.convertToInstant(utc), instant); // not all instants can map back to the correct UTC value long reverseUtcNanos = startSls + ((slsNanos - startSls) * 1000L) / (1000L - 1); assertEquals( rules.convertToUtc(instant), UtcInstant.ofModifiedJulianDay(MJD_1980 - 1, reverseUtcNanos)); } }
@Test public void shouldReturnJobIfJobExists() throws Exception { // given ZoneId cet = ZoneId.of("CET"); OffsetDateTime now = OffsetDateTime.now(cet); JobInfo expectedJob = newJobInfo("42", "TEST", fixed(now.toInstant(), cet), "localhost"); when(jobService.findJob("42")).thenReturn(Optional.of(expectedJob)); String nowAsString = ISO_OFFSET_DATE_TIME.format(now); mockMvc .perform( MockMvcRequestBuilders.get("/some-microservice/internal/jobs/42") .servletPath("/internal/jobs/42")) .andExpect(MockMvcResultMatchers.status().is(200)) .andExpect(MockMvcResultMatchers.jsonPath("$.status").value("OK")) .andExpect(MockMvcResultMatchers.jsonPath("$.messages").isArray()) .andExpect(MockMvcResultMatchers.jsonPath("$.jobType").value("TEST")) .andExpect(MockMvcResultMatchers.jsonPath("$.hostname").value("localhost")) .andExpect(MockMvcResultMatchers.jsonPath("$.started").value(nowAsString)) .andExpect(MockMvcResultMatchers.jsonPath("$.stopped").value("")) .andExpect(MockMvcResultMatchers.jsonPath("$.lastUpdated").value(nowAsString)) .andExpect( MockMvcResultMatchers.jsonPath("$.jobUri") .value("http://localhost/some-microservice/internal/jobs/42")) .andExpect(MockMvcResultMatchers.jsonPath("$.links").isArray()) .andExpect( MockMvcResultMatchers.jsonPath("$.links[0].href") .value("http://localhost/some-microservice/internal/jobs/42")) .andExpect( MockMvcResultMatchers.jsonPath("$.links[1].href") .value("http://localhost/some-microservice/internal/jobdefinitions/TEST")) .andExpect( MockMvcResultMatchers.jsonPath("$.links[2].href") .value("http://localhost/some-microservice/internal/jobs")) .andExpect( MockMvcResultMatchers.jsonPath("$.links[3].href") .value("http://localhost/some-microservice/internal/jobs?type=TEST")) .andExpect(MockMvcResultMatchers.jsonPath("$.runtime").value("")) .andExpect(MockMvcResultMatchers.jsonPath("$.state").value("Running")); verify(jobService).findJob("42"); }