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

时间:2017-08-31 07:47:27

标签: java mongodb datetime

我正在使用MongoDB来存储我的数据。 Mongo以UTC格式存储时间戳作为默认值。 我们处理不同时区的数据。我很难将UTC时间戳转换为PDT或IST时间戳。

尝试构建一个方法来传递时区(我的时间戳将被转换成)和时间戳(UTC)。返回指定时区的时间戳的方法。

public Date getDateBasedOnZone(Date date, "America/Los_Angeles") {

  return dateInAmerica/Los_Angeles;
}

3 个答案:

答案 0 :(得分:5)

您可以使用以下内容来获取特定区域的时间:

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

答案 1 :(得分:1)

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

您只能在java.util.Calendarjava.util.Date转换为String时开始查看时区。

还有Joda-Time比核心Java库有更好的日期API。

答案 2 :(得分:0)

您可以将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));
}