如何在BST(当前日期)中转换2个日期,在GMT中转换另一个日期,以便可以在方法之前和之后比较日期?

如何在BST(当前日期)中转换2个日期,在GMT中转换另一个日期,以便可以使用日期日期前()和后()方法进行比较? 我不知道BST是指英国夏令时。 我正在使用英文设置的笔记本电脑上运行。 我不知道如何最好地进行比较,看看一个是否大于另一个或等于。 我认为时区是我成功使用calander date after()和before()方法的问题。 我根据2个日历检查了相等性。

我想比较日期,并一直在使用格里高利日历。 我有3个格里高利日历日期,从第一个日期减去78个,从第二个日期减去48个,从第三个日期减去24个,从HOURS_OF_DAY减去每个日期。 这些日期是格林尼治标准时间。 然后我得到我当前的日期,这是在BST。 我希望确定我的当前日期即预订日期何时在3个日期之内,即78小时,48小时和24小时。 我希望用Java.Util.Date做到这一点

任何帮助感激地收到了

关于什么:

 Calendar calBst = new GregorianCalander(); calBst.setDate(date1); calBst.setTimezone(TimeZone.getTimeZone("BST"); Calendar calGmt = new GregorianCalander(); calGmt.setDate(date2); calGmt.setTimezone(TimeZone.getTimeZone("GMT"); calBst.before(calGmt); 

我有同样的问题,发现答案并不明显。 我们现在正在生产中使用此解决方案,它工作正常。 它基于jodatime库

 public static Date convertDateTimeZone(Date date, TimeZone currentTimeZone, TimeZone newTimeZone) { return convertJodaTimezone(new LocalDateTime(date), DateTimeZone.forTimeZone(currentTimeZone), DateTimeZone.forTimeZone(newTimeZone)); } public static Date convertDateTimeZone(Date date, TimeZone newTimeZone) { return convertDateTimeZone(date, null, newTimeZone); } public static Date convertJodaTimezone(LocalDateTime date, String srcTz, String destTz) { return convertJodaTimezone(date, DateTimeZone.forID(srcTz), DateTimeZone.forID(destTz)); } public static Date convertJodaTimezone(LocalDateTime date, DateTimeZone srcTz, DateTimeZone destTz) { DateTime srcDateTime = date.toDateTime(srcTz); DateTime dstDateTime = srcDateTime.withZone(destTz); return dstDateTime.toLocalDateTime().toDateTime().toDate(); } 

您所要做的就是使用第一种方法将日期转换为特定的公共时区并进行比较。

要获取时区实例,您所要做的就是:

 TimeZone.getTimeZone("BST");