将UTC时间戳转换为任何其他区域时间戳



我正在使用mongoDB存储我的数据。Mongo将时间戳存储在UTC中。我们在不同时区处理数据。我正在努力将UTC时间戳转换为PDT或IST时间戳。

试图构建一种传递时区的方法(要转换我的时间戳)和时间戳(UTC)。返回指定时区时间戳的方法。

public Date getDateBasedOnZone(Date date, "America/Los_Angeles") {
  return dateInAmerica/Los_Angeles;
}

您可以使用以下内容在特定区域中获得时间:

date.toInstant().atZone( ZoneId.of( "America/Los_Angeles" ) )

java.util.Date对象不包含时区信息,因此不可能在java.util.Date中从一个时区转换为另一个时区(这是没有意义的)。这只是long周围的包装器,自时代以来是毫秒。

您只有在java.util.Calendar或将java.util.Date转换为String时才开始看到时区。

还有Joda Time的日期API远胜于核心Java库。

您可以使用带有所需时区的dateformat并将其应用于日期

public Date convertToZone(Date date, String tz) {
    DateFormat TFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TFormat.setTimeZone(TimeZone.getTimeZone(tz));
    return df.parse(currentTFormat.format(date));
}

相关内容

最新更新