diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeConverters.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeConverters.java index 5a1c6b6f1ca..55f7665b126 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeConverters.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeConverters.java @@ -81,8 +81,7 @@ final class DateTimeConverters { return gc.toZonedDateTime(); } else { - return ZonedDateTime.ofInstant(Instant.ofEpochMilli(source.getTimeInMillis()), - source.getTimeZone().toZoneId()); + return Instant.ofEpochMilli(source.getTimeInMillis()).atZone(source.getTimeZone().toZoneId()); } } diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java b/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java index a88aa1a51de..5a055ce66ff 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/CronTrigger.java @@ -115,7 +115,7 @@ public class CronTrigger implements Trigger { public @Nullable Instant nextExecution(TriggerContext triggerContext) { Instant timestamp = determineLatestTimestamp(triggerContext); ZoneId zone = (this.zoneId != null ? this.zoneId : triggerContext.getClock().getZone()); - ZonedDateTime zonedTimestamp = ZonedDateTime.ofInstant(timestamp, zone); + ZonedDateTime zonedTimestamp = timestamp.atZone(zone); ZonedDateTime nextTimestamp = this.expression.next(zonedTimestamp); return (nextTimestamp != null ? nextTimestamp.toInstant() : null); } diff --git a/spring-context/src/test/java/org/springframework/scheduling/concurrent/DefaultManagedTaskSchedulerTests.java b/spring-context/src/test/java/org/springframework/scheduling/concurrent/DefaultManagedTaskSchedulerTests.java index 2e500243258..6d52a634929 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/concurrent/DefaultManagedTaskSchedulerTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/concurrent/DefaultManagedTaskSchedulerTests.java @@ -18,7 +18,6 @@ package org.springframework.scheduling.concurrent; import java.time.Duration; import java.time.Instant; -import java.time.temporal.ChronoUnit; import org.assertj.core.api.ThrowableAssert.ThrowingCallable; import org.junit.jupiter.api.Test; @@ -53,28 +52,28 @@ class DefaultManagedTaskSchedulerTests { void scheduleAtFixedRateWithStartTimeAndDurationAndNoScheduledExecutorProvidesDedicatedException() { DefaultManagedTaskScheduler scheduler = new DefaultManagedTaskScheduler(); assertNoExecutorException(() -> scheduler.scheduleAtFixedRate( - NO_OP, Instant.now(), Duration.of(1, ChronoUnit.MINUTES))); + NO_OP, Instant.now(), Duration.ofMinutes(1))); } @Test void scheduleAtFixedRateWithDurationAndNoScheduledExecutorProvidesDedicatedException() { DefaultManagedTaskScheduler scheduler = new DefaultManagedTaskScheduler(); assertNoExecutorException(() -> scheduler.scheduleAtFixedRate( - NO_OP, Duration.of(1, ChronoUnit.MINUTES))); + NO_OP, Duration.ofMinutes(1))); } @Test void scheduleWithFixedDelayWithStartTimeAndDurationAndNoScheduledExecutorProvidesDedicatedException() { DefaultManagedTaskScheduler scheduler = new DefaultManagedTaskScheduler(); assertNoExecutorException(() -> scheduler.scheduleWithFixedDelay( - NO_OP, Instant.now(), Duration.of(1, ChronoUnit.MINUTES))); + NO_OP, Instant.now(), Duration.ofMinutes(1))); } @Test void scheduleWithFixedDelayWithDurationAndNoScheduledExecutorProvidesDedicatedException() { DefaultManagedTaskScheduler scheduler = new DefaultManagedTaskScheduler(); assertNoExecutorException(() -> scheduler.scheduleWithFixedDelay( - NO_OP, Duration.of(1, ChronoUnit.MINUTES))); + NO_OP, Duration.ofMinutes(1))); } private void assertNoExecutorException(ThrowingCallable callable) { diff --git a/spring-test/src/main/java/org/springframework/test/http/HttpHeadersAssert.java b/spring-test/src/main/java/org/springframework/test/http/HttpHeadersAssert.java index a9dd7ef01f1..af2fc3fed9c 100644 --- a/spring-test/src/main/java/org/springframework/test/http/HttpHeadersAssert.java +++ b/spring-test/src/main/java/org/springframework/test/http/HttpHeadersAssert.java @@ -18,6 +18,7 @@ package org.springframework.test.http; import java.time.Instant; import java.time.ZoneId; +import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; import java.util.Arrays; @@ -42,7 +43,7 @@ import org.springframework.http.HttpHeaders; */ public class HttpHeadersAssert extends AbstractObjectAssert { - private static final ZoneId GMT = ZoneId.of("GMT"); + private static final ZoneId GMT = ZoneOffset.UTC; private final AbstractCollectionAssert, String, ObjectAssert> namesAssert; @@ -173,7 +174,7 @@ public class HttpHeadersAssert extends AbstractObjectAssert sessions = new ConcurrentHashMap<>(); diff --git a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java index 70f43076ba9..eb77e28b391 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java @@ -20,7 +20,7 @@ import java.net.InetSocketAddress; import java.net.URI; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.time.ZoneId; +import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; @@ -370,7 +370,7 @@ class HttpHeadersTests { @Test void expiresZonedDateTime() { - ZonedDateTime zonedDateTime = ZonedDateTime.of(2008, 12, 18, 10, 20, 0, 0, ZoneId.of("GMT")); + ZonedDateTime zonedDateTime = ZonedDateTime.of(2008, 12, 18, 10, 20, 0, 0, ZoneOffset.UTC); headers.setExpires(zonedDateTime); assertThat(headers.getExpires()).as("Invalid Expires header").isEqualTo(zonedDateTime.toInstant().toEpochMilli()); assertThat(headers.getFirst("expires")).as("Invalid Expires header").isEqualTo("Thu, 18 Dec 2008 10:20:00 GMT"); @@ -605,7 +605,7 @@ class HttpHeadersTests { @Test void firstZonedDateTime() { - ZonedDateTime date = ZonedDateTime.of(2017, 6, 2, 2, 22, 0, 0, ZoneId.of("GMT")); + ZonedDateTime date = ZonedDateTime.of(2017, 6, 2, 2, 22, 0, 0, ZoneOffset.UTC); headers.setZonedDateTime(HttpHeaders.DATE, date); assertThat(headers.getFirst(HttpHeaders.DATE)).isEqualTo("Fri, 02 Jun 2017 02:22:00 GMT"); assertThat(headers.getFirstZonedDateTime(HttpHeaders.DATE).isEqual(date)).isTrue(); diff --git a/spring-web/src/test/java/org/springframework/http/client/reactive/ClientHttpConnectorTests.java b/spring-web/src/test/java/org/springframework/http/client/reactive/ClientHttpConnectorTests.java index aa2f0f17f0b..45ab3d8cc45 100644 --- a/spring-web/src/test/java/org/springframework/http/client/reactive/ClientHttpConnectorTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/reactive/ClientHttpConnectorTests.java @@ -24,7 +24,7 @@ import java.lang.annotation.Target; import java.net.URI; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.time.ZoneId; +import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -184,7 +184,7 @@ class ClientHttpConnectorTests { @ParameterizedConnectorTest void cookieExpireValueSetAsMaxAge(ClientHttpConnector connector) { - ZonedDateTime tomorrow = ZonedDateTime.now(ZoneId.of("UTC")).plusDays(1); + ZonedDateTime tomorrow = ZonedDateTime.now(ZoneOffset.UTC).plusDays(1); String formattedDate = tomorrow.format(DateTimeFormatter.RFC_1123_DATE_TIME); prepareResponse(builder -> builder diff --git a/spring-web/src/test/java/org/springframework/web/server/i18n/FixedLocaleContextResolverTests.java b/spring-web/src/test/java/org/springframework/web/server/i18n/FixedLocaleContextResolverTests.java index 70e959a720b..0902e352b12 100644 --- a/spring-web/src/test/java/org/springframework/web/server/i18n/FixedLocaleContextResolverTests.java +++ b/spring-web/src/test/java/org/springframework/web/server/i18n/FixedLocaleContextResolverTests.java @@ -16,7 +16,7 @@ package org.springframework.web.server.i18n; -import java.time.ZoneId; +import java.time.ZoneOffset; import java.util.Locale; import java.util.TimeZone; @@ -61,7 +61,7 @@ class FixedLocaleContextResolverTests { @Test void resolveCustomizedAndTimeZoneLocale() { - TimeZone timeZone = TimeZone.getTimeZone(ZoneId.of("UTC")); + TimeZone timeZone = TimeZone.getTimeZone(ZoneOffset.UTC); FixedLocaleContextResolver resolver = new FixedLocaleContextResolver(FRANCE, timeZone); TimeZoneAwareLocaleContext context = (TimeZoneAwareLocaleContext) resolver.resolveLocaleContext(exchange()); assertThat(context.getLocale()).isEqualTo(FRANCE); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java index fddf21a5395..3d3f7950196 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java @@ -19,7 +19,6 @@ package org.springframework.web.reactive.function.server; import java.time.Duration; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -165,7 +164,7 @@ class DefaultRenderingResponseTests { RenderingResponse renderingResponse = RenderingResponse.create("view") .status(HttpStatus.FOUND) .modelAttributes(model) - .build().block(Duration.of(5, ChronoUnit.MILLIS)); + .build().block(Duration.ofMillis(5)); assertThat(renderingResponse).isNotNull(); MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://localhost")); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessorMockTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessorMockTests.java index acb070a9b78..90a8f1426fa 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessorMockTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/HttpEntityMethodProcessorMockTests.java @@ -23,6 +23,7 @@ import java.lang.reflect.Method; import java.net.URI; import java.nio.charset.StandardCharsets; import java.time.ZoneId; +import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.util.Arrays; import java.util.Collections; @@ -97,7 +98,7 @@ import static org.springframework.web.servlet.HandlerMapping.PRODUCIBLE_MEDIA_TY */ class HttpEntityMethodProcessorMockTests { - private static final ZoneId GMT = ZoneId.of("GMT"); + private static final ZoneId GMT = ZoneOffset.UTC; private HttpEntityMethodProcessor processor;