java - 在 Java 中将 UTC 时间转换为 IST 时间在 LOCAL 中有效,但在 CLOUD SERVER 中无效

标签 java date timezone server cloud

我在 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/

相关文章:

java - 在 Eclipse 中调试 for 循环的舒适方法

string - VBA:如何仅保留字符串中的日期值?

javascript - 如何计算和检查双周日期

javascript - 如何使用 ASP.NET 查找客户机时区

geolocation - 具有纬度/经度坐标的时区数据库

java - Mapstruct 如何从源对象的 2 个或多个字段构造目标对象?

java - 在 Cassandra 中使用 Java(datastax 驱动程序)按时间戳进行选择

Java继承和对象转换

javascript - 如何解析日期以便不包含时区?

SQL Server 如何跨时区持久化和使用时间