将字符串日期转换为Java日期对象

将字符串日期转换为Java日期对象,java,datetime,date-difference,Java,Datetime,Date Difference,可能的重复项: 假设您有两个日期作为字符串,并且它们的格式为8/11/11 9:16:36 PM我如何将它们转换为java日期对象,以便计算两个日期之间的差异?只要这两个时间都是GMT/UTC,您就可以执行date1.getTime()-date2.getTime()然后将结果除以86400000得到天数。其余的可能是相当直观的 编辑--基于已编辑的问题 要将字符串转换为日期,请使用类 只要这两个时间都是GMT/UTC,就可以执行date1.getTime()-date2.getTime()

可能的重复项:


假设您有两个日期作为字符串,并且它们的格式为
8/11/11 9:16:36 PM
我如何将它们转换为java日期对象,以便计算两个日期之间的差异?

只要这两个时间都是GMT/UTC,您就可以执行
date1.getTime()-date2.getTime()
然后将结果除以86400000得到天数。其余的可能是相当直观的

编辑--基于已编辑的问题

要将字符串转换为日期,请使用类


只要这两个时间都是GMT/UTC,就可以执行
date1.getTime()-date2.getTime()
,然后将结果除以86400000,得到天数。其余的可能是相当直观的

编辑--基于已编辑的问题

要将字符串转换为日期,请使用类


大多数Date的getter都已弃用,被Calendar方法取代。下面是你将如何做到这一点

Date date1, date2; //initialized elsewhere
Calendar day1 = new Calendar();
day1.setTime(date1)

Calendar day2 = new Calendar();
day2.setTime(date2);


int yearDiff, monthDiff, dayDiff, hourDiff, minuteDiff, secondDiff;
yearDiff = Math.abs(day1.get(Calendar.YEAR)-day2.get(Calendar.YEAR));
monthDiff = Math.abs(day1.get(Calendar.MONTH)-day2.get(Calendar.MONTH));
dayDiff = Math.abs(day1.get(Calendar.DAY_OF_YEAR)-day2.get(Calendar.DAY_OF_YEAR));
hourDiff = Math.abs(day1.get(Calendar.HOUR_OF_DAY)-day2.get(Calendar.HOUR_OF_DAY));
minuteDiff = Math.abs(day1.get(Calendar.MINUTE)-day2.get(Calendar.MINUTE));
secondDiff = Math.abs(day1.get(Calendar.SECOND)-day2.get(Calendar.SECOND));

然后你可以用这些数字做任何你喜欢的事情

大多数Date的getter都已被弃用,取而代之的是Calendar方法。下面是你将如何做到这一点

Date date1, date2; //initialized elsewhere
Calendar day1 = new Calendar();
day1.setTime(date1)

Calendar day2 = new Calendar();
day2.setTime(date2);


int yearDiff, monthDiff, dayDiff, hourDiff, minuteDiff, secondDiff;
yearDiff = Math.abs(day1.get(Calendar.YEAR)-day2.get(Calendar.YEAR));
monthDiff = Math.abs(day1.get(Calendar.MONTH)-day2.get(Calendar.MONTH));
dayDiff = Math.abs(day1.get(Calendar.DAY_OF_YEAR)-day2.get(Calendar.DAY_OF_YEAR));
hourDiff = Math.abs(day1.get(Calendar.HOUR_OF_DAY)-day2.get(Calendar.HOUR_OF_DAY));
minuteDiff = Math.abs(day1.get(Calendar.MINUTE)-day2.get(Calendar.MINUTE));
secondDiff = Math.abs(day1.get(Calendar.SECOND)-day2.get(Calendar.SECOND));
然后你可以用这些数字做任何你喜欢的事情

定义一个与您的格式相匹配的文件(java文档非常严格),然后使用parse方法获得一个合适的日期对象,从中可以轻松计算两个日期之间的差异。 一旦出现这种差异,最好是“手动”计算天/小时/分/秒的数量,尽管也可以再次使用SimpleDataFormat(或其他一些格式化机制)以通用方式显示正确的值。

定义与您的格式相匹配的格式(java文档非常严格),然后使用parse方法获得一个合适的Date对象,从中可以轻松计算两个日期之间的差异。
一旦出现这种差异,最好是“手动”计算天/小时/分钟/秒的数量,尽管也可以再次使用SimpleDataFormat(或其他一些格式化机制)以通用方式显示正确的值。

非常感谢,效果非常好!非常感谢,效果很好!非常感谢。是的,我注意到很多date方法都被弃用了。我最终在这里使用了你的方法,这使事情变得非常简单,我感谢你的帮助+非常感谢。是的,我注意到很多date方法都被弃用了。我最终在这里使用了你的方法,这使事情变得非常简单,我感谢你的帮助+1.