- 1、java date可以直接减date吗 没有工具不能测试 将date转换为小时 怎么转啊
- 2、java 中 日期如何相加减???
- 3、java 时间(Date)相减为何出现负数?
- 4、java里日期如何相加减?如何计算两个时间的差值?
- 5、java中如何实现日期相减
date是日期类,不能直接减。但你可以获取date所表示的毫秒,date.getTimes()。然后相减,得出两个日期之间相差的毫秒数。得到了毫秒数转小时应该没问题了吧。
这个东西很简单。
现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
要获得两个日期差,差的形式为:XX天XX小时XX分XX秒
方法一:
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
try
{
Date d1 = df.parse(“2004-03-26 13:31:40”);
Date d2 = df.parse(“2004-01-02 11:30:24”);
long diff = d1.getTime() – d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}
catch (Exception e)
{
}
方法二:
SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
java.util.Date now = df.parse(“2004-03-26 13:31:40”);
java.util.Date date=df.parse(“2004-01-02 11:30:24”);
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(“”+day+”天”+hour+”小时”+min+”分”+s+”秒”);
方法三:
SimpleDateFormat dfs = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
java.util.Date begin=dfs.parse(“2004-01-02 11:30:24”);
java.util.Date end = dfs.parse(“2004-03-26 13:31:40”);
long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒
long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(“”+day1+”天”+hour1+”小时”+minute1+”分”+second1+”秒”);
你的问题其实跟日期没关系,你的问题其实可以描述为下面这样:
long diff = 2160000000;
int result = (int)(diff)/1000/60/60/24;
System.out.println(result);
为什么经过计算后result结果为负数,原因是因为在java语言中int类型的取值范围是:-2147483648~2147483647,而你给的long型的diff超出了2147483647的最大值,导致最高位符号位变成了1,于是经过强制类型转换(int)(diff)之后,已经就是一个负数了,所以除法运算的结果也就成了负数。而当diff等于2073600000的时候,这个值并没有超出int类型的范围,所以计算出的结果是正数
date1.getTime()-date2.getTime()
1计算time2减去time1的差值 差值只设置 几天 几个小时 或 几分钟根据差值返回多长之间前或多长时间后/public static String getDistanceTime(long time1, long time2) { long day = 0; long hour = 0; long min = 0; long sec = 0; long diff。
2.public class TestDate{public static void main(String[] args) throws Exception{SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”)。
3.两个时间间的时间戳计算函数 @param beginDate@param endDate @return long 秒/
public static long getDifference(Date beginDate, Date endDate, int f) {long result = 0;
if (beginDate == null || endDate == null) {return 0。
4.System.out.println(minutes);//计算差值,天数long days=(date2.getTime()-date1.getTime())/(1000*60*60*24);System.out.println(days);} }。
求两个日期之间相隔的天数:
Java代码示例:
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(“yyyy-MM-dd”);
java.util.Date beginDate= format.parse(“2007-12-24”);
java.util.Date endDate= format.parse(“2007-12-25”);
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
System.out.println(“相隔的天数=”+day);
原创文章,作者:IFVVX,如若转载,请注明出处:https://www.506064.com/n/126450.html