- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,我有一个向用户请求的日期数组。我想做一个经过天数的函数,通过检查经过的天数来删除某些条目。如果只有一个日期,这还不错,但不幸的是,我不知道如何使用一系列日期来做到这一点。由于我是初学者,我可能忽略了一些基本的东西。
int[] dates;
int time;
int long;
Date now = new Date();
time = (int) (new Date().getTime() / 1000L);
diff = dates - time;
最后一行代码显然不正确,给了我一个错误。我该怎么做才能纠正这个问题?
感谢您忍受菜鸟。
最佳答案
其他答案都是正确的。
我建议多做一些研究。免费Java Tutorials Oracle 在线提供的 Head First Java 是一个很好的起点。书。
<小时/>如果您愿意,您可以在 Java 中使用基本数组,但是 Collections对象更有用。
您可以使用java.util.Date & Calendar与 Java 捆绑在一起的类,但由于设计和实现不佳,不推荐使用它们。 Joda-Time是一个常用的开源第三方库。
在 Java 8 的 future ,日期/日历类将被新的 java.time.* classes 取代。 。这些类受到 Joda-Time 的启发,但经过了重新架构。
如果您只是想查找太旧(或足够旧,您没有说是哪个)的输入日期,那么您不需要计算耗时。相反,计算输入变得太旧的那一刻的日期时间。然后比较每个输入,看看它是在该时刻之前还是之后。
另一个提示:不要删除您不需要的内容,只需将您想要的内容添加到新集合中即可。使您的代码更易于理解和调试。
Joda-Time 默认情况下使用标准 ISO 8601 将日期时间呈现为字符串格式。您可以在下面的控制台输出中看到这一点。 Joda-Time 内置了许多其他格式,您也可以定义自己的格式。
这里有一些示例代码可以帮助您继续。使用 Joda-Time 2.3,在 Java 7 中运行。
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
java.util.List<DateTime> dateTimesInput = new ArrayList<DateTime>();
dateTimesInput.add( new DateTime( 2001, 2, 3, 4, 5, 6, timeZone ) );
dateTimesInput.add( new DateTime( 2014, 1, 5, 7, 8, 9, timeZone ) );
dateTimesInput.add( new DateTime( timeZone ).minusDays( 2 ) );
// Calculate the moment of a month ago, in desired time zone. Include all of that moment’s day, so go back to first moment of the day.
DateTime monthAgo = new DateTime( timeZone ).minusMonths( 1 ).withTimeAtStartOfDay();
// Loop the dates input. If any are less than a month old, keep them.
java.util.List<DateTime> keepers = new ArrayList<DateTime>();
for(DateTime dateTime: dateTimesInput){
if( dateTime.isBefore( monthAgo ) ){
// Ignore this date-time.
} else {
keepers.add( dateTime );
}
}
// Dump to console.
System.out.println( "Month ago: " + monthAgo );
for(DateTime dateTime: keepers){
System.out.println( dateTime );
}
运行时...
Month ago:2013-12-06T00:00:00.000+01:00
2014-01-05T07:08:09.000+01:00
2014-01-04T04:25:31.272+01:00
关于java - 如何从一组日期中减去一个日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940488/
我是一名优秀的程序员,十分优秀!