/**
* 两个时间相差距离多少天多少小时多少分多少秒
* @param str1 时间参数 1 格式:2016-06-22 18:21:20
* @param str2 时间参数 2 格式:2016-06-22 17:21:20
* @param pattern 日期格式 yyyy-MM-dd HH:mm:ss 毫秒(yyyy-MM-dd HH:mm:ss.SSS)
* @return String 返回值为:xx天xx小时xx分xx秒
*/
public static String getDistanceTime(String str1, String str2, String pattern) {
DateFormat df = new SimpleDateFormat(pattern);
Date one;
Date two;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
long ms = 0;
try {
one = df.parse(str1);
two = df.parse(str2);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1 < time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
//ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000 - min * 60 * 1000 - sec * 1000);
} catch (ParseException e) {
e.printStackTrace();
}
return day + "天" + hour + "小时" + min + "分" + sec + "秒";
//return day + "天" + hour + "小时" + min + "分" + sec + "秒" + ms + "毫秒";
}
分享到:
相关推荐
这篇博客文章“java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒”提供了一个实用的工具类,帮助开发者更方便地处理日期和时间差异。下面将详细解释这个工具类中的关键知识点。 1. **Java...
在这个类中,可能包含了各种方法来计算两个`java.util.Date`对象之间的时间差,包括年、月、日、时、分和秒。以下是一些关于如何在Java中处理此类问题的知识点: 1. **日期和时间类**:在Java中,`java.util.Date` ...
首先,代码创建了一个`SimpleDateFormat`实例,指定了“`yyyy-MM-dd HH:mm:ss`”的日期格式,这是标准的日期时间格式,包括了年、月、日、时、分、秒。通过调用`format()`方法,可以将当前系统时间(通过`new Date()...
`Calendar`是抽象类,用于实现日期和时间的计算,提供年、月、日、时、分、秒等字段的访问。 计算时间差的基本步骤: - 创建两个`Date`对象,分别表示起始时间和结束时间。 - 使用`getTime()`方法获取每个`Date`...
2. **转换为自1970年1月1日以来的天数**:接着将`SYSDATE`减去1970年1月1日(使用`TO_DATE`函数)得到的结果表示的是自1970年1月1日至当前日期的时间差(单位是天)。 3. **转换为毫秒数**:由于一天有86400秒,而...
综上所述,Java中计算时间差涉及日期和时间对象的创建、解析、时间差的计算以及将时间差转换为可读的年、月、日、小时、分钟和秒。这个过程需要注意精度问题,尤其是在涉及到复杂的日期计算时。在实际项目中,推荐...
在Java编程语言中,计算两个日期之间的天数差是一个常见的任务,这在处理时间相关的业务逻辑时非常有用。本文将详细介绍如何使用Java进行此类计算,包括基础方法、API的使用以及可能遇到的问题。 首先,Java提供了`...
代码可能使用了循环或者递归来计算更精细的时间差,例如,将总毫秒差除以相应的时间单位(一天的毫秒数、一小时的毫秒数等)。 为了得到更精确的日期差值,Java 8引入了`java.time`包,其中的`LocalDate`、`...
在这个特定的应用中,可能使用了`System.currentTimeMillis()`方法来获取当前时间的毫秒值,以此来计算词语显示和记住之间的时间差。 在程序运行过程中,记录下的每个词语的记忆时间会被保存成TXT文本文件。TXT文件...
### Java中获取比毫秒更精确的时间 #### 一、问题背景 在开发高性能应用时,经常需要对程序的执行时间进行精确测量。例如,在进行性能优化或对比不同算法的效率时,准确地记录时间差变得至关重要。在Java中,`...
- 转换和计算时间差,可以使用`Duration`类(Java 8及以上版本)或自定义方法,以处理时、分、秒和毫秒的加减。 4. **UI显示**: - 更新用户界面时,要考虑到主线程的安全性,避免在非主线程中修改UI。可以使用`...
使用`Duration.between(date1, date2)`方法计算两个日期之间的时间差,返回一个`Duration`对象。这个对象包含了两个日期之间的总秒数。 4. **格式化输出**: `Duration`对象可以转换为毫秒,然后将毫秒转换为天、...
同时,考虑到用户界面的友好性,可能需要将这些精确的数值转换成用户友好的格式,例如“天数:小时数:分钟数:秒数”或“年-月-日 时:分:秒”。 "TimeIsLife"这个名字暗示了这个程序可能不仅仅是一个简单的倒计时工具...
1. **java.util.Date**:`Date`类代表一个具体的瞬间,精确到毫秒。我们可以创建`Date`对象表示当前时间,或者指定特定的日期和时间。但这个类并不方便进行日期运算,因为它只关注时间戳,不直接处理日期部分。 2. ...
虽然这个示例展示了如何使用`java.util.Date`进行时间差计算,但在实际开发中,使用Java 8引入的`java.time`包会更方便,例如使用`Duration`类可以直接获取精确到纳秒的时间差,并能方便地格式化输出。不过,如果你...
- `java.util.Date`:这是Java早期用于表示日期和时间的类,但它并不精确,因为它基于毫秒数计算自1970年1月1日以来的时间。 - `java.time`包:Java 8引入了这个包,其中包含更现代、更易于使用的日期和时间API,...
然而,自Java 8以来,`java.time`包提供了更强大的时间日期处理能力,其中`LocalDateTime`表示不包含时区的日期和时间,而`Duration`则用于计算两个日期或时间之间的时间差。 要将时间转换为自然语言描述,我们首先...
这里的`diffInMilliseconds`是两个日期之间的毫秒差,除以一天的毫秒数(24小时 * 60分钟 * 60秒 * 1000毫秒)即可得到相差的天数。 在实际的Android项目中,你可能会遇到日期的输入来自用户或者网络,这时候需要...
`nanoTime()`返回的是自Java虚拟机启动以来的纳秒数,虽然不直接对应于实际时间,但可用于计算时间差。结合`TimeUnit`进行转换,可以得到更精确的结果: ```java long startTimeNanos = System.nanoTime(); // ...
// 计算两个时间点之间的时间差 ``` 4. **DEMO示例** 压缩包中的"各种时间DEMO"可能包含以下示例: - 定时任务执行:如每隔5秒打印一条消息。 - 日期格式化:使用`DateTimeFormatter`将日期转换为特定格式的...