现在,当我收到 API 响应时,我看到 updatedDate 值 (2021-06-17T05:37:40.1938687+05:30) 与实际数据库值 (2021-06-16 19:07:40.1938687 -05:00) 不同)。
不,两个日期时间都代表相同的瞬间/时刻。
演示:
import java.time.Instant;
public class Main {
public static void main(String[] args) {
System.out.println(Instant.parse("2021-06-17T05:37:40.1938687+05:30"));
System.out.println(Instant.parse("2021-06-16T19:07:40.1938687-05:00"));
}
}
输出:
2021-06-17T00:07:40.193868700Z
2021-06-17T00:07:40.193868700Z
ONLINE DEMO
您可以将一个转换为另一个
使用OffsetDateTime#withOffsetSameInstant
,您可以将一个转换为另一个。
演示:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class Main {
public static void main(String[] args) {
OffsetDateTime odtFromResponse = OffsetDateTime.parse("2021-06-17T05:37:40.1938687+05:30");
OffsetDateTime odtDesired = odtFromResponse.withOffsetSameInstant(ZoneOffset.of("-05:00"));
System.out.println(odtDesired);
}
}
输出:
2021-06-16T19:07:40.193868700-05:00
ONLINE DEMO
从Trail: Date Time了解有关现代日期时间 API 的更多信息。