本人是代码菜鸟
首先按照从其他地方介绍的普遍的计算方式,Date.getTime获取日期时间的long值来相减

//设置Date格式为“年-月-日 小时:分钟:秒.毫秒”
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
//设置时间,String转为Date
String strStart = "2019-11-11 11:11:50.5";
String strEnd = "2019-11-11 11:11:50.555";
Date dateStart = sdf.parse(strStart);
Date dateEnd = sdf.parse(strEnd);//直接获取Date的long值相减
long duration = dateEnd.getTime() - dateStart.getTime();
System.out.println("duration:" + duration);

得到结果为


这里计算似乎不对,只看末尾的秒,难道不是应该等于下面这个么?

50.555 - 50.5 = 0.055
这个是以秒为单位的结果,转换为毫秒*1000则结果为 55

来输出Date.getTime()一下康康(getTime()返回Date的long值)

String strStart = "2019-11-11 11:11:50.5";
String strEnd = "2019-11-11 11:11:50.555";
...
System.out.println("dateStart.getTime:" + dateStart.getTime());
System.out.println("dateEnd.getTime:" + dateEnd.getTime());

控制台输出结果为

注意看dateStart,原来是小数点后补0时,Date类默认补在前面了,所以需要对strStart末尾补0再转为Date

整个程序完整代码如下

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DateDuration {public static void main(String[] args) throws ParseException {//设置时间,String转为DateString strStart = "2019-11-11 11:11:50.5";String strEnd = "2019-11-11 11:11:50.555";long duration = calculateDuration(strStart,strEnd);System.out.println("duration:" + duration);}/**计算日期时长,以毫秒为单位返回* @author mingliuTester* @param strStart 开始日期时间字符串* @param strEnd 结束日期时间字符串* @throws ParseException */public static long calculateDuration(String strStart, String strEnd) throws ParseException{//设置Date格式为“年-月-日 小时:分钟:秒.毫秒”SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");//字符串补0strStart = addZero(strStart);strEnd = addZero(strEnd);//String转换为Date类型Date dateStart = sdf.parse(strStart);Date dateEnd = sdf.parse(strEnd);System.out.println("dateStart.getTime:" + dateStart.getTime());System.out.println("dateEnd.getTime:" + dateEnd.getTime());//对date的long值相减得到以毫秒为单位相减的结果,Date.getTime()获取long值long duration = dateEnd.getTime() - dateStart.getTime();return duration;}/**末尾补0,这里以保留小数点到后三位为例* @author mingliuTester* @param str*/public static String addZero(String str){//计算字符串长度和点的位置差值int pointPosition = str.length() - str.lastIndexOf('.');//根据位置差值补0switch (pointPosition){//正好保留到小数点后3位case 4:break;//正好保留到小数点后2位case 3:str += "0";//正好保留到小数点后1位case 2:str += "00";//默认当做没有保留小数default:str += ".000";break;}return str;}
}

得到输出结果

完美!

java Date日期时间相减 精确到毫秒相关推荐

  1. sql日期时间相减语句

    sql日期时间相减语句 本款教程利用了datediff函数,来对数据库教程的日期进行相减查询哦,下面便写了n种关于mssql 日期相减的方法. sql中两个日期相减 1.相差天数 select tru ...

  2. java处理日期时间 相加减

    参考:http://alexfc.iteye.com/blog/363185 JAVA处理日期时间常用方法: 1.java.util.Calendar  Calendar 类是一个抽象类,它为特定瞬间 ...

  3. Java Date 日期 时间 相关方法

    DateTools.java import java.text.SimpleDateFormat; import java.util.Date; /*** 日期操作类*/ public class D ...

  4. 实现sqlite datediff日期时间相减(日期差)的方法

    sqlite里有个julianday函数转化后可以直接相减,得到的结果是以天(day)为单位数值,如果不足一天会以小数表示.于是想到应该可以用来换算成时间,即可以进行时间比较,比如要计算精确到hour ...

  5. java中微秒时间相减_Java计算时间差(两个时间相减)

    在Android开发或者Java学习中,经常要求两个时间差 比如说: 现在是 :2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两个日期差,差的形式 ...

  6. C++11日期时间显示(精确到毫秒)

    C++11中提供了方便时间操作的chrono库(参见C++11时间日期库chrono简介),但是其输出显示并不方便:通过put_time可以显示时间(到秒),要显示毫秒,就需要自己处理了. 使用dur ...

  7. html中两个日期相减,在Excel中如何让两个时间相减?

    在Excel中怎样让两个时间相减: datedif函数是Excel的隐藏函数,主要用于计算日期之差,不是四舍五入,是向下取整. 以下图为例,在C2单元格输入=DATEDIF(A1,A2,"y ...

  8. mysql 时间相减取秒_MySQL两个日期字段相减得到秒的方法

    一.MySQL中两个DateTime字段相减 假定表名为tblName,两个DateTime字段名分别为beginDateTime,endDateTime,以下是相关两个mysql日期字段相减的SQL ...

  9. oracle中那个日期怎么相减_oracle日期时间加减规则

    1.日期的加减都是以天为单位的 SELECT to_date('2016-07-05 13:10:00','yyyy-mm-dd hh24:mi:ss') + 1 FROM dual; 结果:2016 ...

最新文章

  1. python脚本怎么使用_如何使用Python脚本
  2. Python基础入门:分支及循环
  3. SpringSecurity remember功能持久化token信息
  4. ORA-29702:error occurred in Cluster Group Service operation错误解决
  5. 恒企自考_自考,一个月时间要怎么复习?
  6. SQL数据库高级查询命令(2)
  7. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?
  8. 花书+吴恩达深度学习(二二)自编码器(欠完备,DAE,CAE,PSD)
  9. linux驱动开发框架
  10. 配置Log4j(很详细)1
  11. web自动化神器,QuickTester
  12. 奇妙的数字小明发现了一个奇妙的数字,他的平方和立方正好把0~9这10个数字每个用且只用了一次,你能猜出这个数字是多少吗
  13. 极化码——比特翻转sc译码(SFSC译码)
  14. 深入浅出net泛型编程[转载] - 天轰穿.net/vs2005/ajax入门 - 博客园
  15. Hadoop原理与安装
  16. 环形电流计算公式_环形电流的磁场分布 怎么计算
  17. 雪球网爬取上市公司信息(一):爬取上市公司代号
  18. 关于 ajax Content-Type 的问题 贼拉有用的!!!
  19. asp.net976-校园论坛系统的设计与实现#毕业设计
  20. 最近看中的几款Limitless的家具

热门文章

  1. 山东省科学技术进步奖项项目申报条件和流程
  2. vbs代码如何使用Wscript调试
  3. 高校动态|清华大学团队:人脸识别技术,爆出巨大丑闻!
  4. UE4 如何解决使用WebUI插件时 没法输入中文的问题
  5. 关于放大器中的SR参数
  6. ABB机器人线速度_ABB机器人控制柜380进线接线
  7. 【html5/css3】Html中的空格符
  8. vs2019注释快捷键设置
  9. 老男孩视频学习知识点总结之系统优化初步讲解
  10. django中bulk_create返回id的三种实现