Java不通过JVM设置时区时间
Posted gamecenter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java不通过JVM设置时区时间相关的知识,希望对你有一定的参考价值。
我的系统时区和存储在数据库中的时区位于东部(美国/纽约)。我使用的对象使用了日期类。我有一段代码将它解析为ZonedDateTime,然后将其转换为用户的时区进行显示。例如:(美国/纽约)->(美国/洛杉矶)。
现在,我想把这个日期,在转换后的美国/洛杉矶,带回(美国/纽约)。例如:(美国/洛杉矶)->(美国/纽约)。请注意,日期时间现在存储在日期对象中,而我的系统时间是美国/纽约。
如何在美国/洛杉矶区域创建ZonedDateTime,而不需要系统转换时间?
系统认为我的约会对象在美国/纽约,然后改变时间。
我尝试使用即时、字符串等创建ZonedDateTime作为美国/洛杉矶。但是每一次试验,JVM都会把我的日期转换到美国洛杉矶,并改变时间-3小时。
ZonedDateTime result = ZonedDateTime.of(
LocalDateTime.of(LocalDate.of(...),
LocalTime.of(...)),
ZoneId.of("NY")
);
以上是关于Java不通过JVM设置时区时间的主要内容,如果未能解决你的问题,请参考以下文章
怎么实时同步java虚拟机与操作系统时区 及JVM启动后再更改操作系统时区或时间也能保持其同步? new date() 时差8个小时的解决方案
SimpleDateFormat 在不同时区 JVM 中的行为不同