gpt4 book ai didi

由于时区问题,Java 应用程序无法执行

转载 作者:行者123 更新时间:2023-12-02 11:30:38 25 4
gpt4 key购买 nike

我编写了一个 Java 程序,它采用当前 IST 计时并生成报告。该报告应在 IST 下午 6 点生成,此检查是在获取 IST 时区后在代码本身中完成的:

Date dateStr = Calendar.getInstance(TimeZone.getTimeZone("Asia/Kolkata")).getTime();

问题区域:我们正在 PD 时区的服务器中执行该 java 文件,但应用程序失败且未生成报告,因为 dateStr 值被 PD 时区覆盖。

请帮助我解决这个问题,因为我不清楚为什么当我在代码中的日期变量中使用 IST 时间时会显示 PD 时间。

最佳答案

您的 dateStr 变量不会被任何时区覆盖,因为 java.util.Date 没有任何时区信息。

不过,它的作用是在打印时使用 JVM 默认时区:https://codeblog.jonskeet.uk/2017/04/23/all-about-java-util-date/

您可以System.out.println它,或者使用您最喜欢的日志记录API(例如log.info(date))记录它,甚至检查它的值在调试器中。所有这些隐式调用toString(),并且此方法只是将日期“转换”为 JVM 默认时区(实际上,Date 对象不会改变,只是字符串)。

如果您想要一个时区感知对象,您可以使用 Calendar 实例。或者更好的是,如果您有 Java 8 或更高版本,只需使用 date/time API .

顺便说一下,正如评论中所说,Calendar.getInstance(timezone).getTime()将返回与new Date()相同的结果,所以你必须在您的问题中包含更多代码,显示您如何使用日期,否则我们无法知道您在做什么以及如何修复它。

关于由于时区问题,Java 应用程序无法执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49321705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com