大马资讯论坛 - 马来西亚中文资讯平台

 找回密码
 注册
搜索
打印 上一主题 下一主题

[教学] Java 计算时间差,处理秒、分钟、小时、天、月、年

[复制链接]
跳转到指定楼层
1#
发表于 2014-2-24 00:33:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Java  处理日期格式为秒前、分钟前、小时前、天前、月前、年前 - Time Elapsed In Years, Months, Days, Hours, Minutes, Seconds
  1.                                         SimpleDateFormat simpleDateFormat =
  2.                                                 new SimpleDateFormat("dd/M/yyyy hh:mm:ss");
  3.                                         Date date1 = simpleDateFormat.parse("13/10/2013 11:30:10");
  4.                                         Date date2 = simpleDateFormat.parse("13/10/2013 11:30:55");
  5.                                         String duration = DateTimeUtils.printDifference(date1, date2);
复制代码

  1. public class DateTimeUtils {

  2.         public static String printDifference(Date startDate, Date endDate){
  3.                  
  4.                 long different = endDate.getTime() - startDate.getTime();
  5.          
  6.                 long secondsInMilli = 1000;
  7.                 long minutesInMilli = secondsInMilli * 60;
  8.                 long hoursInMilli = minutesInMilli * 60;
  9.                 long daysInMilli = hoursInMilli * 24;
  10.                 long monthsInMilli = daysInMilli * 30;
  11.                 long yearsInMilli = daysInMilli * 365;
  12.                
  13.                 long elapsedYears = different / yearsInMilli;
  14.                 if(elapsedYears > 0)
  15.                         return Long.toString(elapsedYears) + " 年前";
  16.                 different = different % yearsInMilli;
  17.                
  18.                 long elapsedMonths = different / monthsInMilli;
  19.                 if(elapsedMonths > 0)
  20.                         return Long.toString(elapsedMonths) + " 月前";
  21.                 different = different % monthsInMilli;
  22.                
  23.                 long elapsedDays = different / daysInMilli;
  24.                 if(elapsedDays > 0)
  25.                         return Long.toString(elapsedDays) + " 天前";               
  26.                 different = different % daysInMilli;

  27.                 long elapsedHours = different / hoursInMilli;
  28.                 if(elapsedHours > 0)
  29.                         return Long.toString(elapsedHours) + " 小時前";                       
  30.                 different = different % hoursInMilli;

  31.                 long elapsedMinutes = different / minutesInMilli;
  32.                 if(elapsedMinutes > 0)
  33.                         return Long.toString(elapsedMinutes) + " 分鐘前";                       
  34.                 different = different % minutesInMilli;

  35.                 long elapsedSeconds = different / secondsInMilli;
  36.                 return Long.toString(elapsedSeconds) + " 秒前";
  37.              
  38.         }
  39. }
复制代码

手机版|大马资讯论坛  

GMT+8, 2024-5-3 08:31 , Processed in 0.020064 second(s), 16 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表