java中date相减(java date日期相减)

  • 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
IFVVX的头像IFVVX
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相关推荐

发表回复

登录后才能评论