我正在使用MongoDB来存储我的数据。 Mongo以UTC格式存储时间戳作为默认值。 我们处理不同时区的数据。我很难将UTC时间戳转换为PDT或IST时间戳。
尝试构建一个方法来传递时区(我的时间戳将被转换成)和时间戳(UTC)。返回指定时区的时间戳的方法。
public Date getDateBasedOnZone(Date date, "America/Los_Angeles") {
return dateInAmerica/Los_Angeles;
}
答案 0 :(得分:5)
您可以使用以下内容来获取特定区域的时间:
date.toInstant().atZone( ZoneId.of( "America/Los_Angeles" ) )
答案 1 :(得分:1)
java.util.Date
对象不包含时区信息,因此无法在java.util.Date
中从一个时区转换为另一个时区(这没有意义)。它只是long
的包装器,自EPOCH以来是毫秒。
您只能在java.util.Calendar
或java.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));
}