有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

我想比较日期,并且一直在使用公历。我有3个公历日期,第一个日期减去78个,第二个日期减去48个,第三个日期减去24个小时。这些日期以格林尼治标准时间为单位。然后我得到了我的当前日期,这是在英国夏令时。我想确定我的当前日期,即预订日期在3个日期内,即78小时内、48小时内和24小时内。我希望用Java实现这一点。Util。日期

感谢您的帮助


共 (1) 个答案

  1. # 1 楼答案

    我也有同样的问题,但答案并不明显。我们现在正在生产中使用这种解决方案,效果很好。它基于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");