java计算两个时间中间的时间是哪天?

问题遇到的现象和发生背景

业务需要计算两个时间中间的时间,比如时间a 今日 "10:00:00",时间b 明日 "18:00:00",需要计算出这两个时间中间的时间是 分别得出哪一日(指今日或者明日),什么时间?

void test() throws ParseException {
    long nowLong = Calendar.getInstance().getTimeInMillis();
    String other = "2021-12-16 14:00:00";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    long otherLong = sdf.parse(other).getTime();
    System.out.println(sdf.format(new Date((otherLong + nowLong) / 2)));
}

加一除二 转一下, 我的运行示例:

img

求线段的中间点是怎么求的?,假设ab为两端点,点c为ab中点,那无非就是c = a + (b - a) / 2,把你那个时间带入这个公式。具体怎么加减,可以转成时间戳计算

1.java有自带的日期类可以快速进行类型转换和获取日期的详细信息。
2.所有的时间都可以表示成一个long类型的毫秒值
3.两个不同大小的毫秒值,求中间值问题相加除以二。
4.将得到的毫秒值,创建新的日期对象。
5.流程图:时间--》毫秒值---》求平均值--》中间毫秒值--》时间--》获取信息