java - 日期早于一个月前

标签 java date

如何判断给定日期是否早于一个月前?最快的算法是什么?我必须考虑到不同的月份有不同的天数。

最佳答案

已更新至 Java 8

类(class)LocalDate类可以使用:

LocalDate aDate = LocalDate.parse("2017-01-01");
return aDate.isBefore( LocalDate.now().minusMonths(1));

对于以前的版本,Calendar 类可以工作。

Calendar calendar = Calendar.getInstance();
calendar.add( Calendar.MONTH ,  -1 );
return aDate.compareTo( calendar.getTime() ) < 0;

示例代码:

import static java.lang.System.out;
import java.time.LocalDate;

public class Sample {
    public static void main( String [] args ) {
        LocalDate aMonthAgo = LocalDate.now().minusMonths(1);
        out.println( LocalDate.parse("2009-12-16").isBefore(aMonthAgo));
        out.println( LocalDate.now().isBefore(aMonthAgo));
        out.println( LocalDate.parse("2017-12-24").isBefore(aMonthAgo));
    }
}

打印

true
false
false

关于java - 日期早于一个月前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075267/

相关文章:

ruby-on-rails - Rails 2.3.5 - ".find"函数不适用于 ( :condition = >"date") option

php时间处理NULL为00 :00:00

jquery - JqPlot 1.0 如何创建带有日期轴和图例的折线图

r - 使用 dplyr 从起止范围变量按月聚合计数?

java - 如何更改 ArrayNode 中的元素值

java - 在运行时更改枚举 Java

java - session 在 android 的 webView 中不起作用

java - 理想的哈希码实现

Java - 如何用以前已知的元素重新填充数组列表

javascript - 获取下周的星期一和星期五