版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GerryRun/article/details/80974706
今天处理新接手的一个项目,其中有需求计算两个日期的差值,内心毫无波澜地开始处理,等我拿到接口数据的时候,我内心依然毫无波澜,甚至想吃黄焖鸡米饭…..
数据是这样的,
"arrivalDateTime":"2019-03-08T15:55:00","departureDateTime":"2019-03-09T12:00:00","duration":"12:-45"
日期中间那个”T”是什么鬼?
按照经验来处理:
String DATE_FORMAT_YMDHMS_WITH_T="yyyy-MM-ddTHH:mm:ss";
SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT_YMDHMS_WITH_T);
Date date1 = format.parse("2018-07-10T12:05:00");
Date date2 = format.parse("2018-07-11T12:00:00");
//计算差值,分钟数
long mills = (date2.getTime() - date1.getTime()) ;
long minutes = (date2.getTime() - date1.getTime()) / (1000 * 60);
String minuteStr=minutes/60+"h"+minutes%60+"m" +
"";
System.out.println("mills=="+mills);
System.out.println("minutes=="+minutes);
System.out.println("minuteStr=="+minuteStr);
果不其然[苦笑][苦笑]:
后经过前辈指导,仅需修改格式化字符串为:
String DATE_FORMAT_YMDHMS_WITH_T=”yyyy-MM-dd’T’HH:mm:ss”;
运行结果如下: