我在 Java 中进行日期转换,因为我使用以下代码片段将 UTC 时间转换为 IST 格式。当我运行它时它在本地正常工作但是当我将它部署到服务器时它没有转换,它仅显示 utc 时间本身。服务器端是否需要任何配置。请帮助我。
代码片段:
DateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String pattern = "dd-MM-yyyy HH:mm:ss";
SimpleDateFormat formatter;
formatter = new SimpleDateFormat(pattern);
try {
String formattedDate = formatter.format(utcDate);
Date ISTDate = sdf.parse(formattedDate);
String ISTDateString = formatter.format(ISTDate);
return ISTDateString;
}
最佳答案
Java Date
对象已经/总是采用 UTC。时区是在格式化文本时应用的东西。 Date
不能(不应该!)位于 UTC 以外的任何时区。
因此,将 utcDate
转换为 ISTDate
的整个概念是有缺陷的。
(顺便说一句:名字不好。Java 约定应该是 istDate
)
现在,如果您希望代码以 IST 时区的文本形式返回日期,那么您需要请求:
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata")); // Or whatever IST is supposed to be
return formatter.format(utcDate);
关于java - 在 Java 中将 UTC 时间转换为 IST 时间在 LOCAL 中有效,但在 CLOUD SERVER 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35127299/