你正在使用你的字符串进行一些不必要的转换。有一个SimpleDateFormat类-试试这个:
SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");String inputString1 = "23 01 1997";String inputString2 = "27 04 1997";try { Date date1 = myFormat.parse(inputString1); Date date2 = myFormat.parse(inputString2); long diff = date2.getTime() - date1.getTime(); System.out.println ("Days: " + TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS));} catch (ParseException e) { e.printStackTrace();}
编辑:既然有一些关于此代码的正确性的讨论:它确实照顾care年。但是,TimeUnit.DAYS.convert由于毫秒转换为天,因此该函数失去了精度(有关更多信息,请参见链接的文档)。如果有问题,diff也可以手动转换:
float days = (diff / (1000*60*60*24));
请注意,这是一个
float值,不一定是
int。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)