java求一个时间加上一个很大秒数后的时间(主要针对加上的秒数大于int型范围的最大值)
1.把描述转换成天,时,分,秒。
public static String parseTimeSeconds(long t) {
String r = “”;
long day, hour, minute, second;
day = t / 86400;
hour = (t % 86400) / 3600;
minute = (t % 86400 % 3600) / 60;
second = t % 86400 % 3600 % 60;
r = day + “,” + hour + “,” + minute + “,” + second;
return r;
}
2.再把一个时间加上天,时,分,秒
public static String getTimeForAdd(int day,int hour,int minute,int second) {
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
Calendar nowTime = Calendar.getInstance();
nowTime.clear();//1970年1月1日 0点0分0秒
nowTime.add(Calendar.DATE, day);
nowTime.add(Calendar.HOUR, hour);
nowTime.add(Calendar.MINUTE, minute);
nowTime.add(Calendar.SECOND, second);
return sdf.format(nowTime.getTime());
}
附加:DecimalFormat df =new DecimalFormat("##########.######");
df.format(12.3459789);输出结果:12.346;
结论:用这种方式去保留小数位数时,既能四舍五入保留小数位数,也能够 去掉小数最后多余的0;