我相信下面的方法给出了你的Joda时间解的等价物。

private static final LocalTime START = LocalTime.of(18, 0);

private static final LocalTime END = LocalTime.of(8, 0);

public static Duration overlap(ZonedDateTime currentStart, ZonedDateTime currentEnd) {

ZonedDateTime singleIntervalStart = currentStart.with(START);

ZonedDateTime singleIntervalEnd = currentStart.plusDays(1).with(END);

if (currentEnd.isBefore(singleIntervalStart)) {

// no overlap

return Duration.ZERO;

}

ZonedDateTime overlapStart = currentStart.isBefore(singleIntervalStart)

? singleIntervalStart : currentStart;

ZonedDateTime overlapEnd = currentEnd.isBefore(singleIntervalEnd)

? currentEnd : singleIntervalEnd;

return Duration.between(overlapStart, overlapEnd);

}

为了使用您问题中的时间戳进行尝试,我使用以下实用程序方法:

private static void demo(String from, String to) {

ZoneId zone = ZoneId.of("Atlantic/Stanley");

Duration overlapDuration = overlap(LocalDateTime.parse(from).atZone(zone),

LocalDateTime.parse(to).atZone(zone));

System.out.println("" + from + " - " + to + ": " + overlapDuration);

}

现在我这样称呼它:

demo("2018-01-02T14:59:18.922", "2018-01-02T14:59:38.804");

demo("2018-01-02T18:32:59.348", "2018-01-02T20:30:41.192");

demo("2018-01-02T01:54:59.363", "2018-01-02T01:54:59.363");

demo("2018-01-03T00:10:38.831", "2018-01-03T00:11:53.103");

输出为:

2018-01-02T14:59:18.922 - 2018-01-02T14:59:38.804: PT0S

2018-01-02T18:32:59.348 - 2018-01-02T20:30:41.192: PT1H57M41.844S

2018-01-02T01:54:59.363 - 2018-01-02T01:54:59.363: PT0S

2018-01-03T00:10:38.831 - 2018-01-03T00:11:53.103: PT0S

在第一个示例中,14:59在18:00之前,因此结果是0的重叠。在第二个示例中,整个间隔被计算为重叠(近2小时)。请注意,在最后两个示例中,没有报告重叠,因为时间在18:00之前很多小时。我不确定这是否是你想要的,因为泰晤士报也在08:00之前。

java 计算两个时间戳_Java时间戳计算重叠持续时间与间隔相关推荐

  1. java 判断两个经纬度差异_计算两个经纬度点的实际距离

    一.概述 因为地球是个球形,所以地球上的两个点,实际上是球面上的两个点,要计算这两个点之间的距离,不能简单的通过直角坐标系来计算. 二.计算方法 1.地球半径取近似值 6378.137km 1 /** ...

  2. python计算两个日期的天数计算多少岁

    计算出生日期天数,计算两个日期之间天数,计算多少岁,获取两个日期之间的日期列表 安装datedays: pip install datedays import datedaysif __name__ ...

  3. c#语言+计算两个位置的距离,计算两个GPS坐标的距离 方法一 - C#语言

    场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519,113.380301 GPS: 22.511962,113.380301 距离:284.6 ...

  4. java控制台两个字符串_java控制台输入字符串

    实验要求: 1/7 1.掌握 JDK 的安装及参数配置方法,能在控制台界面使用 Java 命令进行 Java 程序的编译及运行. 2.掌握 Eclipse 软件安装方法.3.掌握在 ...... 习题 ...

  5. java保留两位小数_java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 mport java.text.DecimalFormat; DecimalFormat df = new Decima ...

  6. java 求两线交点_JAVA求两直线交点和三角形内外心的编程代码

    JAVA求两直线交点和三角形内外心的编程代码 一.求两直线交点 复制代码 代码如下: class Point { double x; double y; public Point() { this.x ...

  7. java比较两个对象_java判断两个对象是否相等的方法

    java判断两个对象是否相等的方法 发布时间:2020-06-25 13:48:38 来源:亿速云 阅读:197 作者:Leah 这期内容当中小编将会给大家带来有关java判断两个对象是否相等的方法, ...

  8. java gps时间转换工具_java 时间戳和时间互转工具 和 时间偏移量计算

    时间互转代码片段: * 时间戳 转 时间 * * @param beginDate * @return * @see [类.类#方法.类#成员] */ public static String tim ...

  9. java智能推算出时间_Java时间戳推算N天前的日期测试发现跟预期有差异

    今天写代码发现,我想根据当前的时间,推算出N天前的日期时间,我通过时间戳相减的方法,发现1-24天的推算都是对的,到第25天之后就有问题了.有Java的开发者,执行一下我的代码,验证一下,或者告诉我问 ...

最新文章

  1. 计算机一级多选题没有选分,计算机一级多选题
  2. 关于Java实现去除连续空格的延伸
  3. golang文件操作:打开关闭文件,带缓冲区的读文件
  4. Qt Creator语义突出显示
  5. c#中datagridview里checkbox的使用方法[转]
  6. 反射 数据类型_这是一份超全面详细的Java反射机制学习指南
  7. JAVA泛型只能用引用类型_Java泛型和设计模式:不参数化对泛型类型的引用总是一件坏事吗?...
  8. C# .net Static 干什么的
  9. 跟我一起学extjs5(22--模块Form的自己定义的设计)
  10. 类的虚函数表和虚函数在内存中的位置
  11. 五分钟带你玩转rabbitmq(八)【真实案例】消息消费失败如何处理?
  12. 模电笔记快速整理之《模拟电子技术基础(第四版)》上海交大网课版 1-2章
  13. 摄氏度和开氏度的换算_摄氏度与开氏度换算(开氏度和摄氏度的换算公式)
  14. 基于libexif写入/读取自定义Exif 信息(曝光模式,感光度,GPS等信息)
  15. 【软件测试】——软件测试经验总结
  16. keras实现deblurgan-v1(图像去模糊)
  17. Python练习:四叶玫瑰数求解
  18. wd移动硬盘不能识别_西部数据移动硬盘无法识别恢复
  19. 融云一站式「云市场」上线,携手生态伙伴,共建价值平台
  20. netstat+taskkill命令解决windows端口占用问题

热门文章

  1. 深入Atlas系列:综合示例(1) - 调用服务器端方法时直接获得客户端具体类型...
  2. 个人觉得好的文章链接推荐【转载,侵权立删】
  3. linux的常用操作——gcc
  4. linux的常用操作——vim和vi
  5. 计算机网络(二十一)-数据链路层设备
  6. python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
  7. 中希尔排序例题代码_超全面分析十大排序算法
  8. idea整合jboos_在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404...
  9. 三维叉乘怎么算_3分钟做完这些题,你的CAD才算熟练
  10. php 解释语言,php是解释型语言吗