在不得不深入减去两个日期来计算天数的跨度之后,我内心正在流血:
GregorianCalendar c1 = new GregorianCalendar();
GregorianCalendar c2 = new GregorianCalendar();
c1.set(2000, 1, 1);
c2.set(2010,1, 1);
long span = c2.getTimeInMillis() - c1.getTimeInMillis();
GregorianCalendar c3 = new GregorianCalendar();
c3.setTimeInMillis(span);
long numberOfMSInADay = 1000*60*60*24;
System.out.println(c3.getTimeInMillis() / numberOfMSInADay); //3653
Run Code Online (Sandbox Code Playgroud)
在.NET中只有2行代码,或者您命名的任何现代语言.
这是java的残暴吗?或者我应该知道隐藏的方法吗?
而不是使用GregorianCalendar,可以在util中使用Date类吗?如果是这样,我应该留意像1970年那样微妙的事情吗?
谢谢
java.time中的Period类只处理面向日期的药水:年,月,日.
时间部分怎么样:小时,分钟,秒?
我们如何解析和生成ISO 8601中定义的完整周期的字符串表示,PnYnMnDTnHnMnS?例如,一天半:P1DT12H.学年是九个月P9M.每年我都会有两周零三天的假期P17D.顾客占用了酒店房间2天17个半小时P2DT17H30M.
可能重复:
计算Java中日期的差异如何在Java中
减去日期?
我正在从字符串解析两个日期,如下所示:
Oct 15, 2012 1:07:13 PM
Oct 23, 2012 03:43:34 PM
Run Code Online (Sandbox Code Playgroud)
我需要做的是找到这两个日期之间的区别,例如:
Oct 23, 2012 03:43:34 PM - Oct 15, 2012 1:07:13 PM
Run Code Online (Sandbox Code Playgroud)
= 8天2小时36分21秒
^这是我需要得到的两个日期/时间
我相信我需要解析格式并将其转换为另一种格式,然后减去它们之间的差异并进行数学运算以获得两者之间的天/小时/分钟/秒