我正在使用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));
}