java 计算两个时间戳_Java时间戳计算重叠持续时间与间隔
我相信下面的方法给出了你的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时间戳计算重叠持续时间与间隔相关推荐
- java 判断两个经纬度差异_计算两个经纬度点的实际距离
一.概述 因为地球是个球形,所以地球上的两个点,实际上是球面上的两个点,要计算这两个点之间的距离,不能简单的通过直角坐标系来计算. 二.计算方法 1.地球半径取近似值 6378.137km 1 /** ...
- python计算两个日期的天数计算多少岁
计算出生日期天数,计算两个日期之间天数,计算多少岁,获取两个日期之间的日期列表 安装datedays: pip install datedays import datedaysif __name__ ...
- c#语言+计算两个位置的距离,计算两个GPS坐标的距离 方法一 - C#语言
场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519,113.380301 GPS: 22.511962,113.380301 距离:284.6 ...
- java控制台两个字符串_java控制台输入字符串
实验要求: 1/7 1.掌握 JDK 的安装及参数配置方法,能在控制台界面使用 Java 命令进行 Java 程序的编译及运行. 2.掌握 Eclipse 软件安装方法.3.掌握在 ...... 习题 ...
- java保留两位小数_java使double保留两位小数的多方法 java保留两位小数
这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 mport java.text.DecimalFormat; DecimalFormat df = new Decima ...
- java 求两线交点_JAVA求两直线交点和三角形内外心的编程代码
JAVA求两直线交点和三角形内外心的编程代码 一.求两直线交点 复制代码 代码如下: class Point { double x; double y; public Point() { this.x ...
- java比较两个对象_java判断两个对象是否相等的方法
java判断两个对象是否相等的方法 发布时间:2020-06-25 13:48:38 来源:亿速云 阅读:197 作者:Leah 这期内容当中小编将会给大家带来有关java判断两个对象是否相等的方法, ...
- java gps时间转换工具_java 时间戳和时间互转工具 和 时间偏移量计算
时间互转代码片段: * 时间戳 转 时间 * * @param beginDate * @return * @see [类.类#方法.类#成员] */ public static String tim ...
- java智能推算出时间_Java时间戳推算N天前的日期测试发现跟预期有差异
今天写代码发现,我想根据当前的时间,推算出N天前的日期时间,我通过时间戳相减的方法,发现1-24天的推算都是对的,到第25天之后就有问题了.有Java的开发者,执行一下我的代码,验证一下,或者告诉我问 ...
最新文章
- 计算机一级多选题没有选分,计算机一级多选题
- 关于Java实现去除连续空格的延伸
- golang文件操作:打开关闭文件,带缓冲区的读文件
- Qt Creator语义突出显示
- c#中datagridview里checkbox的使用方法[转]
- 反射 数据类型_这是一份超全面详细的Java反射机制学习指南
- JAVA泛型只能用引用类型_Java泛型和设计模式:不参数化对泛型类型的引用总是一件坏事吗?...
- C# .net Static 干什么的
- 跟我一起学extjs5(22--模块Form的自己定义的设计)
- 类的虚函数表和虚函数在内存中的位置
- 五分钟带你玩转rabbitmq(八)【真实案例】消息消费失败如何处理?
- 模电笔记快速整理之《模拟电子技术基础(第四版)》上海交大网课版 1-2章
- 摄氏度和开氏度的换算_摄氏度与开氏度换算(开氏度和摄氏度的换算公式)
- 基于libexif写入/读取自定义Exif 信息(曝光模式,感光度,GPS等信息)
- 【软件测试】——软件测试经验总结
- keras实现deblurgan-v1(图像去模糊)
- Python练习:四叶玫瑰数求解
- wd移动硬盘不能识别_西部数据移动硬盘无法识别恢复
- 融云一站式「云市场」上线,携手生态伙伴,共建价值平台
- netstat+taskkill命令解决windows端口占用问题
热门文章
- 深入Atlas系列:综合示例(1) - 调用服务器端方法时直接获得客户端具体类型...
- 个人觉得好的文章链接推荐【转载,侵权立删】
- linux的常用操作——gcc
- linux的常用操作——vim和vi
- 计算机网络(二十一)-数据链路层设备
- python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
- 中希尔排序例题代码_超全面分析十大排序算法
- idea整合jboos_在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404...
- 三维叉乘怎么算_3分钟做完这些题,你的CAD才算熟练
- php 解释语言,php是解释型语言吗