Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有其他方法将LocalDateTime转换为OffsetDateTime(特定于时区)_Java_Spring Boot_Datetime_Java 8 - Fatal编程技术网

Java 是否有其他方法将LocalDateTime转换为OffsetDateTime(特定于时区)

Java 是否有其他方法将LocalDateTime转换为OffsetDateTime(特定于时区),java,spring-boot,datetime,java-8,Java,Spring Boot,Datetime,Java 8,我想将IST时区中的LocalDateTime转换为系统相关时区中的OffsetDateTime。到目前为止,我的系统位于AWS EC2中托管的UTC时区LocalDateTime字段作为响应从我的Spring boot后端服务中内部调用的API接收。在保存该字段之前,我将其转换为OffsetDateTime,以保持区域偏移。因此,我使用下面的方法进行转换 localDateTime.atOffset(ZoneOffset.of(“+05:30”)) .atzonesamainstant(Zon

我想将
IST
时区中的
LocalDateTime
转换为系统相关时区中的
OffsetDateTime
。到目前为止,我的系统位于AWS EC2中托管的
UTC
时区
LocalDateTime
字段作为响应从我的Spring boot后端服务中内部调用的API接收。在保存该字段之前,我将其转换为
OffsetDateTime
,以保持区域偏移。因此,我使用下面的方法进行转换

localDateTime.atOffset(ZoneOffset.of(“+05:30”))
.atzonesamainstant(ZoneId.systemDefault())
.toOffsetDateTime();
IST

输出:2020-03-24T15:55:41Z->
OffsetDateTime
系统时区(UTC)


是否有其他方法来进行此转换,或者这是最好的方法。请在这方面帮助我。

在JDK-14上,
LocalDateTime
打印
2020-03-25T10:59:07.289253
OffsetDateTime
打印
2020-03-25T10:59:07.289253+05:30
。这不是您所期望的吗?@Naman您的机器或运行JDK14的机器的时区是多少?它是
id=“Asia/Kolkata”
。我知道了,但错过了实例位于
UTC
。但随后
OffsetDateTime OffsetDateTime=localDateTime.atOffset(ZoneOffset.of(“+05:30”)).atZoneSameInstant(ZoneId.of(“亚洲/加尔各答”)).toOffsetDateTime()对你没有帮助?我希望转换应该依赖于系统…就像IST到系统运行的任何地方一样。这就是我选择
ZoneId.systemDefault()
的原因,你现在做的似乎是最好的方法,除了你应该从
atZone(…)
开始,而不是从
atOffset(…)
正确处理输入值的DST。在JDK-14上,
LocalDateTime
打印
2020-03-25T10:59:07.289253
OffsetDateTime
打印
2020-03-25T10:59:07.289253+05:30
。这不是您所期望的吗?@Naman您的机器或运行JDK14的机器的时区是多少?它是
id=“Asia/Kolkata”
。我知道了,但错过了实例位于
UTC
。但随后
OffsetDateTime OffsetDateTime=localDateTime.atOffset(ZoneOffset.of(“+05:30”)).atZoneSameInstant(ZoneId.of(“亚洲/加尔各答”)).toOffsetDateTime()对你没有帮助?我希望转换应该依赖于系统…就像IST到系统运行的任何地方一样。这就是我选择
ZoneId.systemDefault()
的原因,您所做的似乎是最好的方法,除了您应该从
atZone(…)
开始,而不是从
atOffset(…)
开始,以正确处理输入值的DST。